我有这个表格
@using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST",
OnSuccess = "LimparCampos('true')", OnFailure = "LimparCampos('false')" },
new { id = "formUpdStoringSettings" }))
{ ... }
而不是true或false,我想传递/ Operacao / opImportFile返回的字符串
这可能吗?
答案 0 :(得分:1)
基于documentation,回调将提供返回的ajax内容,该内容本身具有“get_data()
方法以从服务器获取响应”。
在你的定义中,你可能只需要指向回调方法,而不是实际自己调用它(意思是,不包括参数):
OnSuccess = "LimparCampos"
答案 1 :(得分: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或部分视图。
答案 2 :(得分:0)
尝试设置这样的回调函数:
OnSuccess = "LimparCampos"
并使用以下方式访问数据:
function LimparCampos(response) {
var jsonResult = response.get_response().get_object();
}