![](/img/trans.png)
[英]Passing ViewModel in RedirectToAction causing ViewModel properties to be null
[英]Passing ModelState to RedirectToAction into a ViewModel
当使用DbEntityValidationException
时,如何传回发现的验证错误
try
{
db.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
this.ModelState.AddModelError(validationError.PropertyName,
validationError.ErrorMessage);
}
}
return RedirectToAction("AccessDetail", "Home", new { IDValue = access.ID });
}
看来当我执行RedirectToAction
我的ModelState
刷新了,并且我无法查看它发现的错误。
AccessDetail填充其中包含许多不同数据源的视图模型。 因此,仅将对视图的访问权限传递不起作用。
我当时在看这个问题,但由于我的视图是用ViewModel填充的,所以它不符合我的需求
RedirectToAction
帮助程序方法向客户端发出302
响应,使客户端向新的url发出新的GET请求。
如果要在这两个请求之间保留一些数据,请使用TempData
。
TempData["Errors"] = yourListOfErrors;
return RedirectToAction("AccessDetail", "Home", new { IDValue = access.ID });
然后在GET
操作中,读取TempData值并显示它。
但是,如果您不想执行RedirecToAction,则可以简单地将viewmodel返回到视图,并且如果您具有ValidationSummary帮助器方法,它将显示验证错误消息。
只需使用
return View(model);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.