weixin_33739523 2014-01-27 07:44 采纳率: 0%
浏览 38

如何访问从jQueryAjax方法返回的对象?

我有一个返回对象的webMethod,访问从jQueryAjax方法返回的对象有困难。我想访问HighlightResult并在中继器中显示,但一直收到错误:处理请求时出错,内部服务器错误。

我的目标是:

  public class SearchResults
  {
    internal SearchResults()
    {

    }

    public virtual IQueryable<Document> DocumentResults { get; internal set; }
    public virtual IQueryable<Page> PageResults { get; internal set; }
    public virtual IQueryable<Word> WordResults { get; internal set; }
    public ICollection<String> HighlightResults { get; internal set; }
    public int QueryTime { get; internal set; }
    public int TotalResults { get; internal set; }

}

我的Ajax函数:

var query = String($('[id$=txtSearch]').val());            
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Viewer.aspx/GetHighlightResults",
            dataType: "json",
            data: JSON.stringify({docID: docid, query: query, 
                  pageNumber: 1, resultsPerPage: 10}),
            success: function (response) {
                alert("Success!!");                 
                var data = response.d;

                // none of these are displaying....
                alert(String(data));
                alert(String(data.HighlightResults));
                alert(String(data.HighlightResults[0]));

                $.each(data, function(index, item) {
                    alert(item);
                    alert(item.HighlightResults);

                    $("#search-results").append("<b>" + item + "</b>");
                })
            },
            error: function (xhr, status, error) {
                alert("responseText=" + xhr.responseText + 
                      "
 textStatus=" + status + "
 errorThrown=" + error);
            }
        });

我的网络方法:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public static SearchResults GetHighlightResults(String docID, String query, 
                  String pageNumber, String resultsPerPage)
    {
        SearchResults results = null;
        try
        {
            ArchiveSearcher searcher = new ArchiveSearcher();
            if (!String.IsNullOrEmpty(query) && Convert.ToInt32(docID) > 0 && 
                Convert.ToInt32(pageNumber) > 0 && Convert.ToInt32(resultsPerPage) > 0)
            {
                results = searcher.SearchDocument(Convert.ToInt32(docID), query, 
                Convert.ToInt32(pageNumber), Convert.ToInt32(resultsPerPage)); 
            }
        }
        catch (Exception ex)
        {
            // Log the exception.
            ArchiveViewer.Logic.ExceptionUtility.LogException(ex, "GetSearchResults in Viewer.aspx.cs");
        }
        return results;
    }

任何帮助都将不胜感激!

EDIT: 如果我从Web方法返回ICollection<String> Highlight结果,则可以使用以下方法从jquery ajax函数访问它:

success: function (response) {
    var data = response.d;
    $.each(data, function(index, item) {
         alert(item);
....

我认为我的问题与我如何访问整个SearchResults对象有关。 我已经注释掉了Ajax函数中的所有内容,但它仍然失败。

  • 写回答

4条回答 默认 最新

  • weixin_33720452 2014-01-27 09:50
    关注

    Through Jquery ajax you pass the JSON.stringify data but in your method you get it as a normal string

    Check with that reference link https://stackoverflow.com/a/6323528/2641723

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?