动态表格有点问题。直到运行时才知道模型,所以我不能使用@html.ValidationMessageFor(m=>m.foo)
。
我以为我可以改用@html.ValidationMessage()
,但是这种形式在get请求之后显示了验证消息?在提交表单之前。
if (field.Tag == "input")
{
<div class="m-form--group m-form--group-inset">
<label for="@(prop.Value.Name ?? prop.Key.Name)">@(prop.Value.Name ?? prop.Key.Name)</label>
@Html.TextBox(prop.Key.Name, prop.Key.GetValue(Model), new RouteValueDictionary(field.Attributes))
@Html.ValidationMessage(prop.Key.Name, "Required", new { @class="field-validation-error" })
</div>
}
我从{p>那里得到prop
var props = typeof(Ljmu.Web.UI.ViewModels.Components.Contact.ContactFormViewModel)
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(x => x.GetCustomAttributes(typeof(System.ComponentModel.DataAnnotations.DisplayAttribute), true)
.Cast<System.ComponentModel.DataAnnotations.DisplayAttribute>().FirstOrDefault() != null)