function onTestComplete(content) {
    var url = '<%= Url.Action("JsonTest","Organization") %>';
    $.post(url, null, function(data) {
        alert(data["name"]);
        alert(data["ee"]);
    });
}

<% using (Ajax.BeginForm("JsonTest", new AjaxOptions() { HttpMethod = "POST",
     OnComplete = "onTestComplete" }))

{ %>
    <%= Html.TextBox("name") %><br />
    <input type="submit" />
<% } %>


控制器:

[HttpPost]
public ActionResult JsonTest() {
 var data = new {
  name = "TestName", ee = "aaa"
 };
 return Json(data);
}


由于某些原因,当我单击按钮时(我的断点在控制器jsontest方法中),jsontest被调用了两次(这是真正的问题)。我想像往常一样使用Ajax.BeginForm(“” new AjaxOptions {HttpMethod =“ POST”,OnComplete =“ onTestComplete”}))我可以调用一次,但是它不会将值发布到控制器。

最佳答案

它被调用了两次,因为您要调用它两次-一次是Ajax.BeginForm,一次是onTestComplete

控制器没有任何值,因为它没有任何参数。

09-06 18:14