Alb*_*erd 2 asp.net-mvc views http-post
我在MVC中有一个名为Action的View,它接受和ID作为参数.我还有另一个名为Action的视图,但它被标记为HTTPPOST.
Action的POST版本可能以编程方式失败.当它失败时,我想添加一个ModelError,然后重定向到Action的GET版本,同时我提供ID.
简而言之=>我想从POST视图转移到GET视图,并传递参数.有点像
ModelState.AddModelError("", "Could not verify token");
return RedirectToAction("Action", "ExpiredAccounts" new { aid = myId });
Run Code Online (Sandbox Code Playgroud)
其中Action是View,ExpiredAccounts是Controller,AID是Account ID.这当然不起作用,因为您可以向视图添加模型错误,而不是重定向
谢谢
在这种情况下,您最好返回相同的视图,而不是重定向:
ModelState.AddModelError("", "Could not verify token");
var model = repository.Get(myId);
return View(model);
Run Code Online (Sandbox Code Playgroud)
模式的正确流程Redirect-After-Post如下:
如果您想违反此最佳做法,您可以在重定向时始终将错误消息作为查询字符串参数发送:
return RedirectToAction(
"Action",
"ExpiredAccounts"
new { aid = myId, error = "Could not verify token" }
);
Run Code Online (Sandbox Code Playgroud)
然后在目标操作中验证是否已提供此参数并向模型状态添加错误:
public ActionResult Action(int myId, string error)
{
if (!string.IsNullOrEmpty(error))
{
ModelState.AddModelError("", error);
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4803 次 |
| 最近记录: |