Mar*_*tin 18 c# asp.net asp.net-mvc modelstate
对于错误消息,验证错误等
ModelState.AddErrorMessage("Fool!");
Run Code Online (Sandbox Code Playgroud)
但是,你在哪里提出成功回应,例如"你成功地向你的前任转移了很多钱".+"你的余额现在为零".我仍然希望在控制器级别设置它,最好是以键值方式设置它,就像错误消息一样,但不会使模型状态失效.
这通常是怎么做的?ViewData的?
Ros*_*ied 23
我会在我想要在控制器中显示的消息填充TempData ["success"](或者你想给它的键),然后适当地重定向(例如,如果我编辑用户,我重定向回用户列表) .这依赖于POST/Redirect/GET模式 - 无论如何这是一个很好的做法.
TempData["success"] = "Your Balance is now zero";
Run Code Online (Sandbox Code Playgroud)
在母版页中,我有一个部分检查该变量并在一个漂亮的样式div中显示该消息.像(可能不是100%正确)的东西:
<% if(TempData["success"] != null) { %>
<div id="SuccessMessage"><%= Html.Encode(TempData["success"]) %><div>
<% } %>
Run Code Online (Sandbox Code Playgroud)
我想你可以查看模型状态并在模型中设置变量......
public ActionResult MyAction(MyEntity model)
{
//Here would be some validation, which returns with ModelState errors
//Now set the validity of the modelstate as the IsValid property in your entity
model.IsValid = ModelState.IsValid;
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
在你看来......
<% if(Model.IsValid) { %>
<p>You successfully transfered your balance to your ex.</p>
<% } %>
Run Code Online (Sandbox Code Playgroud)
编辑:鉴于您更新的问题,我认为您正在考虑采取错误的方法.我会同意其他答案并遵循PRG模式.这比尝试添加假错误更有意义.
归档时间: |
|
查看次数: |
11761 次 |
最近记录: |