Просто подробно остановился на моем комментарии выше
Я реализовал это путем создания html-расширения "HintFor"
public static MvcHtmlString HintFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression)
{
dynamic attribute = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
return MvcHtmlString.Create(attribute.Description);
}
, которое просто отображает то, что вы задали для свойства описания на дисплее.атрибут для этого свойства viewmodel
[Display(Name = "Application Title", Description = "Description goes in here")]
public string Title { get; set; }
Затем в моем интерфейсе я отформатировал каждый шаг формы, как показано (дополнительные классы, потому что я использую библиотеку униформ для форматирования своей формы)
<div class="question">
@Html.LabelFor(m => m.Title, new { @class = "label" })
<div class="formHint">
@Html.HintFor(m => m.Title)
</div>
<div class="response">
@Html.TextBoxFor(m => m.Title, new { @class = "textInput", autocomplete = "off" })
</div>
<div class="sidetip">
@Html.ValidationMessageFor(m => m.Title, null, new { @class = "invalid" })
</div>
</div>
Затем с помощью небольшого CSS я установил класс «formhint», чтобы он не отображался, когда отображается сообщение об ошибке
.validation-summary-valid, .field-validation-valid
{
display: none;
}
.input-validation-error + .formHint
{
display: none !important;
}
Надеюсь, это поможет