我有一个用于向我的数据库添加数据的表单。我使用Ajax.BeginForm()将数据发布到控制器,然后执行存储过程来保存数据。我想要的结果是,如果存储过程无法添加数据并在另一种情况下重定向到其他页面,则显示错误。所以我在控制器中做了类似的事情。
if (succees)
{
return RedirectToAction("ModificationPage", new { id = posted.articleId });
}
else
ViewData["ErrorMessage"] = msg;
return PartialView("_error");
_error是一个显示错误消息的简单部分视图。我的问题是,当存储过程添加数据,而不是重定向到修改页面时,修改页面在视图内是rendred。 asp mvc中是否有一个方法可以解决这个问题
答案 0 :(得分:1)
您可以使用ajaxForm的onSuccess参数
using( Ajax.BeginForm( "action","controlle",
new AjaxOptions( ) {
OnSuccess = "mySuccessFunction",
} ) ) }
然后在js
function mySuccessFunction(){
//check if html with error exist on page
window.location = "url"
}
答案 1 :(得分:0)
RedirectToAction
。您可以将重定向网址发送回客户端,并从客户端使用window.location
重定向到新位置。
答案 2 :(得分:-2)
你可以在你的控制中
if (succees)
{
Redirect("/AREA/ContolleurName/ModificationPage/?Id=" + posted.articleId+ ")
}
else
ViewData["ErrorMessage"] = msg;
return PartialView("_error");**strong text**
并在你的控制者中创建行动
public ActionResult ModificationPage(int Id)
{
return //your view
}
或者像这样的ajax
$("class(.test) or Id (#Test)").on("click", function () {
var id = $(this).attr('id');
/*Création de la chaine en Json...*/
window.location.href = "/AREA/ContolleurName/ModificationPage?Id=" + id +"";
});