什么使Html.ValidationMessage . .显示"*"在渲染
本文关键字:quot 显示 什么 Html ValidationMessage | 更新日期: 2023-09-27 18:17:44
c#, MVC3, Razor
是否有一个简单的方法来显示一个"*"当Razor视图渲染,然后应用不同的(更有信息的)消息实际验证发生了吗?
视图当前正在使用
@Html。ValidationMessageFor(model => model. email)
更多的信息验证已经存在,但我没有"*"表示某些字段是必需的。
问题:
我是否错过了一些我可以在DataAnnotation上添加的东西,以便它"也"在视图上每个所需的文本框的末尾添加[*]?
===================================
我可以创建一个新的HTMLExtension,如
public static partial class ExtensionMethods
{
public static MvcHtmlString RequiredSymbolFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
string symbol = "*",
string cssClass = "editor-field-required")
{
ModelMetadata modelMetadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
if (modelMetadata.IsRequired)
{
var builder = new TagBuilder("span");
builder.AddCssClass(cssClass);
builder.InnerHtml = symbol;
return new MvcHtmlString(builder.ToString(TagRenderMode.Normal));
}
return new MvcHtmlString("");
}
}
…然后在视图上添加新的htmlhelper为:
@Html.RequiredSymbolFor(model => model.Firstname)
从[http://www.kristofclaes.be/blog/2011/08/26/an-htmlhelper-to-display-if-a-field-is-required-or-not-in-aspnet-mvc-3/] 但我只是想知道是否有更简单的方法。
为什么不在视图中每个文本框后面加上星号呢?在@Html.EditorFor(Function(model) model.CommentAuthorName) *