如果我的操作中有错误,如何返回不同操作的结果或将用户移至不同的操作ModelState
不失去我的ModelState
信息?
场景是;Delete
操作接受来自我的 DELETE 表单的 POSTIndex
动作/视图。如果有错误Delete
我想将用户移回到Index
操作/查看并显示存储的错误Delete
行动于ViewData.ModelState
。在 ASP.NET MVC 中如何做到这一点?
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Delete)]
public ActionResult Delete([ModelBinder(typeof(RdfUriBinder))] RdfUri graphUri)
{
if (!ModelState.IsValid)
return Index(); //this needs to be replaced with something that works :)
return RedirectToAction("Index");
}
将您的视图数据存储在TempData
并从你的那里检索它Index
操作(如果存在)。
...
if (!ModelState.IsValid)
TempData["ViewData"] = ViewData;
RedirectToAction( "Index" );
}
public ActionResult Index()
{
if (TempData["ViewData"] != null)
{
ViewData = (ViewDataDictionary)TempData["ViewData"];
}
...
}
[编辑] 我检查了 MVC 的在线源,看起来ViewData
在控制器中是可设置的,因此最简单的方法就是传输所有ViewData
, 包括ModelState
,到索引操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)