我注意到在使用ModelState.AddModelError验证表单上的输入时出现了一个奇怪的问题。Html.ValidationMessage的输出不是真正的HTML值,而是它的编码值,因此CSS样式不会应用于错误消息。
示例:
private string errorMessage = "<span class=\"negative\">{0}</span><br class=\"hid\" />";
ModelState.AddModelError("title", String.Format(errorMessage, "Tab title is required"));输出如下所示:
<span class="field-validation-error"><span class="negative">URL is Required</span><br class="hid" /></span>这不是他们早期测试版的情况,我不确定在这里采取什么方法。
谢谢,尼克
发布于 2011-10-29 03:45:57
还有另一种方法可以做到这一点,而不必创建自己的扩展。
例如,假设我们的一个控制器中包含以下内容:
ModelState.AddModelError("Name", "<b>Please Use a Valid Person Name</b>");然后,我们可以在视图中执行以下操作:
@if(Html.ValidationMessageFor(x => x.Name) != null){
@Html.Raw(Html.ValidationMessageFor(x => x.Name).ToString())
}将阻止对'<b>Please Use a Valid Person Name</b>'的错误消息进行编码。
发布于 2009-04-08 01:36:08
创建您自己的模拟Html.VallidationMessage的扩展方法...?
我不得不做一些类似的事情,因为内置的MVC验证工具(ModelState、ValidationMessage等)不适合在一个页面上有多个表单的页面。
https://stackoverflow.com/questions/727160
复制相似问题