【发布时间】:2015-01-30 22:55:30
【问题描述】:
我有一个表单,用于将数据添加到我的数据库中。我正在使用 Ajax.BeginForm() 将数据发布到控制器,然后执行存储过程来保存数据。如果存储过程无法添加数据并在另一种情况下重定向到其他页面,我想要的结果是显示错误。所以我在控制器中做了这样的事情。
if (succees)
{
return RedirectToAction("ModificationPage", new { id = posted.articleId });
}
else
ViewData["ErrorMessage"] = msg;
return PartialView("_error");
_error 是一个显示错误消息的简单局部视图。我的问题是,当存储过程添加数据时,不是重定向到修改页面,而是在视图内部渲染了修改页面。 asp mvc中有没有可以解决这个问题的方法
【问题讨论】:
-
Ajax 调用保持在同一页面上。如果你想重定向,那么只需进行标准提交(使用 ajax 并没有真正的好处),然后如果出现错误,添加模型状态错误并返回视图或重定向到错误页面。
-
@StephenMuecke 这是实际使用的,但问题是当出现错误时我必须刷新页面,这需要很多时间,而使用 ajax 我只更新了一小部分页面
-
不,你不是。您使用
Ajax.BeginForm()这是一个 ajax 调用。如果您想重定向,只需使用Html.BeginForm()并执行标准提交。 -
我的意思是我使用了 Html.BeginForm() 现在我想修改它并使用 Ajax.BeginForm()
-
您的问题清楚地表明我正在使用 Ajax.BeginForm() 将数据发布到控制器!但是如果你真的在使用
Html.BeginForm,那就坚持下去,如果出现错误,添加ModelState错误并返回视图以显示错误,或者重定向到错误页面以显示错误。
标签: ajax asp.net-mvc asp.net-mvc-4