1

我有这个表格

@using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST",
OnSuccess = "LimparCampos('true')", OnFailure = "LimparCampos('false')" }, 
new { id = "formUpdStoringSettings" }))
{ ... }

我想传递 /Operacao/opImportFile 返回的字符串,而不是 true 或 false

这可能吗?

4

3 回答 3

1

根据文档,回调提供了返回的 ajax 内容,它本身具有“get_data()从服务器获取响应的方法”。

在您的定义中,您可能只需要指向回调方法,而不是自己实际调用它(意思是,不包括参数):

OnSuccess = "LimparCampos"
于 2012-12-14T18:51:27.623 回答
1

我非常倾向于避免使用 AjaxForm。我会编写普通表单并让我的 javascript 来处理单独发布的表单。简单干净。

@using(Html.Beginform("opImportFile","Operaco"))
{
  //some elements here
  <input type="submit" value="Save" id="btnSave" />
}

还有一些 javascript 让我们的表单提交到 ajaxified 版本

$(function(){
  $("#btnSave").click(function(e){
     var _form=$(this).closest("form");
     e.preventDefault();
     $.post(_form.attr("action"),_form.serialize(),function(response){
         // now response variable has the return item from the action method.
         // and do some fun stuff with that.
         alert(response);

     });
  });
});

您可以从您的操作方法返回任何内容。字符串、JSON 或部分视图。

于 2012-12-14T19:05:52.187 回答
0

尝试像这样设置回调函数:

OnSuccess = "LimparCampos"

并通过以下方式访问数据:

  function LimparCampos(response) {
     var jsonResult = response.get_response().get_object();

  }
于 2012-12-14T18:57:31.633 回答