我的MVC应用程序中有一个更大的网页表单。 当我单击“保存”按钮时,表单将被提交并保存值,最后我将重定向到同一页面/表单。 但它重新呈现整个表单,当它已经加载并且没有必要时。 我怎么能避免这种情况? 我希望SAVE按钮的行为如下:保存所有,但继续我的位置。
我的控制器代码:
[HttpPost]
[ValidateInput(false)]
public ActionResult FormCol(FormCollection collection)
{
...
if (Request.Form["DocumentId"] != null)
{
...
return RedirectToAction("FormCol", new { id = DocumentId });
}
查看:
<input type="hidden" value="@document.Id" name="DocumentId" />
答案 0 :(得分:3)
您需要通过Ajax / jquery发布您的表单:
$.ajax({
url: '/someController/FormCol?variable1=' + $("#input1").val() + '&variable2=' + $("#input2").val(),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data); //This is where you would do something based upon a successful save, such as alerting the user to their new document ID or something.
},
error: function () {
alert("error"); //This is where you know that your save failed.
}
});
并更改您的Controller操作返回Json:
public JsonResult FormCol(string variable1, string variable2)
{
//do saving stuff here
return Json(new { id = DocumentId });
}