【问题标题】:Validation while rendering multiple partial views渲染多个局部视图时的验证
【发布时间】:2013-09-18 21:17:05
【问题描述】:

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

我的部分视图如下所示:

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

我查看了渲染的HTML,似乎没有应用“data-val”之类的验证标签...

任何想法将不胜感激!

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多