C# MVC3..是什么使Html.ValidationMessage…显示一个"*&引用;渲染时
C#,MVC3,剃须刀 当Razor视图渲染时,是否有一种简单的方法显示“* 然后在 是否进行了实际验证 视图当前正在使用C# MVC3..是什么使Html.ValidationMessage…显示一个"*&引用;渲染时,c#,asp.net-mvc-3,razor,data-annotations,C#,Asp.net Mvc 3,Razor,Data Annotations,C#,MVC3,剃须刀 当Razor视图渲染时,是否有一种简单的方法显示“* 然后在 是否进行了实际验证 视图当前正在使用 @Html.ValidationMessageFor(model=>model.Email) 更多信息的验证已经存在,但我没有“*”显示这一点 某些字段是必需的 问题: 我是否缺少可以添加到DataAnnotation上的内容,以便它“也”在视图中每个必需的文本框的末尾添加[*] ===============================================
@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("");
}
}
从[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)*
我希望不要以那种方式硬编码..我主要是想看看ValidationMessageFor上是否缺少一个参数。另外,如果您按自己的方式执行,即使在显示验证消息后,*仍会保留。这不是一个好主意,因为您需要手动为每个具有必需属性的字段键入“*”。
@Html.RequiredSymbolFor(model => model.Firstname)