C #, MVC3, Razor
Есть ли простой способ отобразить "*" при визуализации представления Razor, а затем применить другое (более информативное) сообщение, когда происходит фактическая проверка?
Представление в настоящее время использует
@ Html.ValidationMessageFor (model => model.Email)
Более информативная проверка уже есть, но у меня нет "*", показывающего, что определенные поля
ВОПРОС:
Мне не хватает чего-то, что я могу добавить в DataAnnotation, чтобы он "также" добавил это [*] в конце каждого необходимого TextBox в представлении?
=========================================
Я мог бы создать новое расширение HTMLE, например:
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/]
, но мне просто интересно, есть ли более простой способ.
Спасибо заранее.