C#,MVC3,Razor
是否有一种简单的方式来显示" *"当Razor视图呈现时 然后应用不同的(更具信息性)消息 实际验证发生了吗?
该视图目前正在使用
@ Html.ValidationMessageFor(model => model.Email)
已经有更多信息验证,但我没有" *"显示出来 某些字段是必需的。
问题:
我错过了我可以在DataAnnotation上添加的内容,以便它也可以"还有#34;在视图上的每个必需TextBox的末尾添加[*]?
===================================
我可以创建一个新的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 /
但我只是想知道是否有更简单的方法。
先谢谢。
答案 0 :(得分:0)
为什么不在每个文本框后面将星号放在视图中?
如在
@Html.EditorFor(Function(model) model.CommentAuthorName) *