我想在POST后找到一个好的方法来反馈消息.
例如,我有这些方法
public ActionResult Index(int id)
{
Model model = getModel(id);
return View(model);
}
[HttpPost]
public ActionResult Save(Model model)
{
Result result = saveModel(result)
if (Result.Status != Status.SUCCESS)
{
...
}
else if(Result.Status != Status.FAILURE)
{
...
}else
{
...
}
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
和Result类有一个消息属性
public class Result
{
...
public string Message{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我调用.../Controller/Index/1时,我的索引视图显示,并且此视图有一个调用Save Action的提交按钮,但如果业务层出现问题,我想提出错误/警告消息.
所以,doult是解决这种情况的最佳方法是什么?
我读过一些推荐TempData的文章,其他人推荐使用ViewData,将邮件传输到Index View.
让我分享一下我开发的一个项目的ChangePassword行动的例子:
[HttpPost]
public ActionResult ChangePassword(LoginModel model)
{
if (ModelState.IsValid && _userService.ChangePassword(model.Password, model.NewPassword))
ViewBag.SuccessMessage = UI.PasswordChanged;
else
ModelState.AddModelError("Password", ErrorMessages.InvalidPassword);
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
请记住,如果您重定向到另一个操作,ViewBag将无法工作.如果要在一个请求中保留信息,则必须使用TempData.
| 归档时间: |
|
| 查看次数: |
3560 次 |
| 最近记录: |