【问题标题】:access to return object from asp.net in Jquery在 Jquery 中访问从 asp.net 返回的对象
【发布时间】:2011-10-05 07:56:04
【问题描述】:

我有jquery函数:

function CheckStatus() {
        $.ajax({
            url: "http://localhost:1111/test.myControl/GetDone",
            type: "GET",
            dataType: "jsonp",
            success: function (data) {
                console.info(data.GetStatusResult);
                if (data.IsDone) {
                    result = true;
                    CheckForFile();
                }
                else
                    result = false;      
            }
        });

    }

这里是我从 asp.net mvc3 调用的函数:

public MStatus GetDone()
        {
            ......

            return new MStatus {  IsDone = IsDone, NowDateTime=DateTime.Now};
        }

如您所见,此函数返回对象 MStatus 和变量 IsDone。我试图检查IsDone 的值,但我不能。

谁能告诉我如何解决我的问题?

【问题讨论】:

  • 您需要澄清您的问题。你想达到什么目标?你有什么错误/困难?问题越清楚,您收到答案的速度就越快:)
  • 使用 Firebug 查看 ajax 调用返回什么
  • 你说得对!但是我的英语不太好...,但是我发现我的错误我必须将以下行替换为: data.IsDone : data.GetStatusResult.IsDone

标签: jquery asp.net asp.net-mvc-3


【解决方案1】:

检查请求是否为AJAX请求并发送JSON包

var status = new MStatus {  IsDone = IsDone, NowDateTime=DateTime.Now};
if (Request.IsAjaxRequest()) {
  return Json( new { IsDone = status.IsDone, NowDateTime = status.NowDateTime }
              , JsonRequestBehavior.AllowGet);
}else{
  return status;
}

【讨论】:

    【解决方案2】:

    你的方法需要返回一个ActionResult

    public ActionResult GetDone()
    {
        ......
    
        var status = new MStatus { IsDone = IsDone, NowDateTime=DateTime.Now};
        return Json(status, JsonRequestBehavior.AllowGet);
    }
    

    【讨论】:

      【解决方案3】:

      试试这样的:-

      if(data.d.IsDone){ }
      

      希望对你有帮助

      编辑:-

      function GetTrainingDetails(id) {
              $('#<%=updProgress.ClientID%>').css("display", "block");
              $.ajax({
                  type: "POST",
                  url: "/_layouts/TrainingSheet/TrainingSourceBrowse.aspx/GetTrainingDetail",
                  data: "{'trainingId': '" + id + "'}",
                  contentType: "application/json; charset=utf-8",
                  dataType: "json",
                  success: function (msg) {
                      AjaxSucceeded(msg);
                  },
                  error: AjaxFailed
              });
          }
      
          function AjaxSucceeded(result) {
              var res = result.d;
      
              $('#<%= lblType.ClientID%>').html(res.TrainingType);
              $('#<%= lblOrganizer.ClientID %>').html(res.Organizer);
              $('#<%= lblTrainer.ClientID %>').html(res.Trainer);
              $('#<%= lblLevel.ClientID %>').html(res.Level);
              $('#<%= lblCategory.ClientID %>').html(res.Category);
              $('#pDetails').html(res.Summary);
              $('#headingTitle').html(res.Training);
      
              $('#<%=updProgress.ClientID %>').css("display", "none");
              $('#divDetails').slideDown("slow");
          }
      
          function AjaxFailed(result) {
              alert(result.status + ' ' + result.statusText);
              $('#<%=updProgress.ClientID %>').css("display", "none");
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-23
        • 2014-07-08
        • 2014-12-31
        相关资源
        最近更新 更多