1

这是我的行动。

    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");

它不工作。

4

4 回答 4

1

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

因此,您只需将参数添加到您的AddSearch方法中:

function AddSearch(data, status, xhr) {
        // you can access your properties from data
        alert(data.Name);
}
于 2012-09-20T15:02:50.070 回答
0

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-09-20T15:05:49.960 回答
0

你可以尝试这样的事情:

在控制器中:

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);

    });
}

希望这可以帮助。

于 2012-09-20T14:30:32.560 回答
0

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

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

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

于 2012-09-20T14:26:38.350 回答