【问题标题】:asp.net mvc3, how to get the value returned by JsonResultasp.net mvc3,如何获取JsonResult返回的值
【发布时间】:2012-09-20 14:20:25
【问题描述】:

这是我的行动。

    public virtual JsonResult AddSearch()
    {
        var data = new { Id = food.Id, Image = food.Image, Name = food.Name};

        return Json(data, JsonRequestBehavior.AllowGet);
    }

这是我的 aJax 表单

    @using (Ajax.BeginForm("AddSearch", "Home", new AjaxOptions { OnSuccess = "AddSearch" }))

我的 javascript 文件。

    function AddSearch() {
        alert("sdfsdfsdf");
    }

它有效,我看到了警告框。我的问题是如何获得 JsonResult 返回的“Id”、“Name”和“Image”。我试过了

        alert("sdfsdfsdf");

它不工作。

【问题讨论】:

    标签: asp.net-mvc json asp.net-mvc-3 jsonresult


    【解决方案1】:

    MVC(准确地说是 unobtrusiveAjax 助手)会将标准的 jQuery.ajax success(data, textStatus, jqXHR)callback 参数传递给 OnSuccess 方法。

    所以你只需要将参数添加到你的AddSearch 方法中:

    function AddSearch(data, status, xhr) {
            // you can access your properties from data
            alert(data.Name);
    }
    

    【讨论】:

    【解决方案2】:

    我就是这样做的...我访问了模型中的列表并将其转换为我的 javascript 中的 JSON。

    var JsonServerList = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(@Model.ServerList) %>;
    

    现在,当我说 ServerList[i].servername 时,我得到了值。

    【讨论】:

      【解决方案3】:

      你可以试试这样的:

      在控制器中:

      public virtual JsonResult AddSearch()
      {
          var data = new { Id = food.Id, Image = food.Image, Name = food.Name};
      
          return Json(data, JsonRequestBehavior.AllowGet);
      }
      

      在视图/javascript 部分:

      function AddSearch() {
      
          $.getJSON("@url.Action(here_goes_your_actionname)", { parameters }, function (data) {
      
              alert(data);
      
          });
      }
      

      希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        AjaxOption "UpdateTargetId" 中还有一个属性将附加您的响应。 你的观点喜欢

        <div id="tagetId">
        </div>
        
             @using (Ajax.BeginForm("AddSearch", "Home", new AjaxOptions { OnSuccess = "AddSearch", UpdateTargetId = "tagetId" }))
             {
        
             } 
        

        在你的控制器中

        public Actionresult  AddSearch()
        {
            var data = new { Id = food.Id, Image = food.Image, Name = food.Name};
        
            return data;
        }
        

        您的结果将附加在“targetId”中。

        【讨论】:

          猜你喜欢
          • 2012-05-23
          • 2012-12-09
          • 1970-01-01
          • 2011-03-08
          • 1970-01-01
          • 1970-01-01
          • 2023-03-18
          • 2020-02-14
          • 1970-01-01
          相关资源
          最近更新 更多