2

我有多个视图/模型正在循环到主视图中。我通过@Html.Partial() 加载它们...这些视图/模型基本上是具有某些属性的表单元素...不幸的是,我很快发现只有每种类型的视图/模型中的第一个被验证。我尝试移动这些字段,并且只有每种类型中的第一个可以验证。

我的部分观点如下所示:

 @Html.DropDownListFor(model=>model.dropdownVal,Model.SelectItems,new { id=Model.FieldID, Name = Model.FieldID })

我查看了呈现的 HTML,似乎没有应用像“data-val”这样的验证标签......

任何想法将不胜感激!

4

1 回答 1

3

在您的部分顶部添加以下内容,以诱使 ASP.NET MVC 认为助手在表单中使用并生成正确的 data-val 属性:

@{
    this.ViewContext.FormContext = new FormContext();
}

基本上,只有将Html.*助手data-val放在Html.BeginForm. 除了在您的情况下,我猜这Html.BeginForm是在您的父视图中而不是在局部视图中,因此@Html.DropDownListFor不会发出任何验证属性。通过将当前设置为FormContext部分中的新实例,如前所示,帮助程序将在相应的输入字段上生成正确的客户端验证属性。

于 2013-09-18T21:26:37.947 回答