我在MVC 3中有一个表单。目前我正在执行以下操作来发布表单。 该表单已发布,正在进行整页刷新以显示结果。
提交后,controll将发送状态成功或失败。而已。 我只需要在div中显示基于返回状态的成功或失败消息。
有没有人知道如何在MVC 3中执行此操作的高级步骤?
<div id="ShowResultHere"></div>
@using (Html.BeginForm("Update", "Test", FormMethod.Post, new { id="frmUpdate"}))
{
//form fields
<button type="submit" class="sprt bg_red bt_red h27">Update</button>
}
[HttpPost]
public ActionResult Update(TestModel model)
{
return Json(new { s = "Success" });
}
我希望成功在ShowResultHere div onsuccess回调中静默显示。
可以在MVC 3中完成吗?
答案 0 :(得分:19)
您可以订阅表单的submit
事件并执行AJAX调用,如下所示:
$(function() {
$('#frmUpdate').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
// The AJAX call succeeded and the server returned a JSON
// with a property "s" => we can use this property
// and set the html of the target div
$('#ShowResultHere').html(result.s);
}
});
// it is important to return false in order to
// cancel the default submission of the form
// and perform the AJAX call
return false;
});
});
答案 1 :(得分:7)
你也可以通过不写任何javascript来实现这一点。 使用AJAX表单
<div id="ShowResultHere"></div>
@using (Ajax.BeginForm("Update", new AjaxOptions { UpdateTargetId = "ShowResultHere" }))
{
}
在您的控制器中
[HttpPost]
public ActionResult Update(TestModel model)
{
if(blah)
return PartialView("Success")
return PartialView("Failed")
}
这样做意味着您必须制作两个视图。但这意味着没有写javascript。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您通过jQuery Ajax提交表单,则可以在成功回调函数中显示客户端的消息。