好的,伙计们,我正在努力解决这个问题。我在 MVC4 和使用验证插件的 jQuery 中找到了普通表单验证的示例(突出显示文本框并显示红色文本),但是,它们在尝试执行自定义样式的东西时并没有太大帮助。
例如,在 ajax 表单中,当用户提交表单并且参数错误(在帖子后的 Controller 中)时,我想在页面上显示一个自定义 HTML 元素 - 一个包含文本的 div这样我就可以为我的网站适本地设置 div 的样式。
在寻求答案的过程中,我发现了 ModelState.AddModelError() - 如果您只想显示文本而不是 div,这非常好,因为它只是向页面添加了一个我可以设置样式的页面,但是我需要不仅仅是一个出现。
有人有这方面的任何好的演示/示例吗?
我添加了一个简单的示例图像,如果密码不正确,我想在右侧显示消息(html 和 css 的组合):
最佳答案
在您的 View 中,您可以使用 ValidationMessageFor 并添加一些类。要使用它,请确保您使用 AddModelError 指定了正确的属性名称,或者您在类中结合 TryValidateModel()
查看代码:
@Html.ValidationMessageFor(model => model.PropertyX, null, new { @class ="error-propertyx" })
验证模型代码:
[Required(ErrorMessageResourceName = "RequiredField", ErrorMessageResourceType = typeof(ValidationRes))]
public string PropertyX { get; set; }
或者如果你想要更多的东西,你可以使用像下面这样的方法
创建一个单独的扩展方法也是一种选择,请注意,这不是最佳代码,但它会做你想做的:)
public static MvcHtmlString CustomValidatioMessageFor<TModel, TProperty>(this HtmlHelper obj, Expression<Func<TModel,TProperty>> expression){
string html = (string)obj.ValidationMessageFor(expression);
html = "<div>" + html + "</div>";
return new MvcHtmlString(html);
}
关于c# - MVC4 表单验证 - 自定义 html 消息 howto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362561/