Fra*_*ger 46 .net c# asp.net-mvc
我在我的控制器中添加了验证检查,修改ModelState
了验证失败的情况.
例如:
private bool ValidateMoney(string raw, string name, decimal min, decimal max) {
try {
var dec = Convert.ToDecimal(raw);
if (dec < min) {
throw new ArgumentOutOfRangeException(name + " must be >= " + min);
}
else if (dec > max) {
throw new ArgumentOutOfRangeException(name + " must be <= " + max);
}
}
catch (Exception ex) {
ModelState.AddModelError(name, ex.GetUserMessage());
}
return ModelState.IsValid;
}
Run Code Online (Sandbox Code Playgroud)
但是,我永远不知道传递key
参数的值ModelState.AddModelError
.(在示例中,我只是将其设置为我的UI显示名称.)
参数是什么以及我应该如何使用它?
小智 55
ValidationMessage HTML Helper使用密钥来了解要显示的确切错误消息.
例:
<%=Html.TextBox("Name") %> <br />
<%=Html.ValidationMessage("Name") %>
Run Code Online (Sandbox Code Playgroud)
ValidationMessage帮助程序将显示ModelState字典中具有键"Name"的消息.
Out*_*ill 12
该key
参数可用于将验证错误与表单字段相关联,从而控制消息在屏幕上的显示位置.它既可以与HtmlHelper类型的输入一起使用,也可以与简单的HTML输入一起使用.
如果您使用过@Html.TextBoxFor
(或类似)和a @Html.ValidationMessageFor
,则可以从name
要验证的字段的HTML 中获取密钥的值(使用Inspect Element).
如果您刚刚使用了HTML <input>
,则可以使用添加验证占位符@Html.ValidationMessage("AKeyIMadeUp")
,并在其中显示如下所示的消息:ModelState.AddModelError("AKeyIMadeUp", "The value you entered is no good");
.
小智 6
抱歉 Necropost。上面的答案没有我认为有用的细节(这正是我要找的!!)
为了创建“模型范围”验证错误 - 然后您只需添加 string.Empty 作为您的密钥。
例如
ModelState.AddModelError(string.Empty, "This is my Model Level Message");
Run Code Online (Sandbox Code Playgroud)
感谢:http : //www.tutorialsteacher.com/mvc/htmlhelper-validationsummary的提示。
归档时间: |
|
查看次数: |
21823 次 |
最近记录: |