Asp.net mvc 3 不引人注目的验证范围不起作用

Asp.net mvc 3 不引人注目的验证范围不起作用,asp.net-mvc-3,Asp.net Mvc 3,我正在做一个MVC3应用程序。我有一个型号带有[范围(1175,ErrorMessage=“Invalid”)] 在其中一个控制器上,视图与所有用于验证的标记完美呈现。在具有相同设置的第二个控制器上,在dropdownlist上完成的范围验证不会显示在html标记上。我在config.web上有验证和非结构化的Evalidation true。我正在使用LINQTOSQL,并且我已经完成了一个部分类来添加额外的元数据。该字段确实拾取了[显示(Name=“State”)],但范围不是 <t

我正在做一个MVC3应用程序。我有一个型号带有
[范围(1175,ErrorMessage=“Invalid”)]

在其中一个控制器上,视图与所有用于验证的标记完美呈现。在具有相同设置的第二个控制器上,在dropdownlist上完成的范围验证不会显示在html标记上。我在
config.web
上有验证和非结构化的Evalidation true。我正在使用
LINQTOSQL
,并且我已经完成了一个部分类来添加额外的元数据。该字段确实拾取了
[显示(Name=“State”)]
,但范围不是

 <tr>
            <td>@Html.LabelFor(x => x.carta.INVprovincia)</td>
            <td>@Html.DropDownListFor(x => x.carta.INVprovincia, Model.provinciaItems, new { @class = "ddlsmall" }) <br /> @Html.ValidationMessageFor(x => x.carta.INVprovincia)</td>
        </tr>
        <tr>
            <td>@Html.LabelFor(x => x.carta.INVmunicipio)</td>
            <td>@Html.DropDownListFor(x => x.carta.INVmunicipio, Model.municipiosItems, new { @class = "ddlsmall" }) <br /> @Html.ValidationMessageFor(x => x.carta.INVmunicipio)</td>
        </tr>

@LabelFor(x=>x.carta.INVprovincia)
@Html.DropDownListFor(x=>x.carta.INVprovincia,Model.provinciaItems,new{@class=“ddlsall”})
@Html.ValidationMessageFor(x=>x.carta.INVprovincia) @Html.LabelFor(x=>x.carta.INVmunicipio) @Html.DropDownListFor(x=>x.carta.INVmunicipio,Model.市政项目,新的{@class=“ddlsall”})
@Html.ValidationMessageFor(x=>x.carta.INVmunicipio)
Html.XXX帮助程序不会生成HTML5
数据-*
属性,如果它们不在一个看起来像是您的情况的表单中,则会被低调的验证框架使用。我猜表单包含在父视图中。此错误(IMHO)已在ASP.NET MVC 4中修复。一种可能的解决方法是将以下内容放在部分视图的“收件人”上,以伪造表单,并使帮助者相信他们在表单中:

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

第二个控制器中可能存在问题?能否显示已在其中呈现与此属性对应的输入元素的视图?我添加了视图的一部分。我在视图上有必填字段,它们可以工作。这只是一个范围没有。好吧,经过几次调试,它才开始自己工作。。。谢谢所有的帮助,如果这些帮助者在这个表单中,那么这应该可以很好地工作。另外,请确保已将jquery.validate和jquery.validate-unobtrusivescripts包含到页面中。这些下拉列表是否也包含整数作为值?在这种情况下,为什么不使用一个简单的文本字段来输入整数,而使用下拉列表呢?是的,两个js都在标题中。我正在从数据库中提取一个状态列表及其相关ID。如果-1表示我没有选择并且应该给我验证,则根据范围(1,75)进行验证。但是在视图的标记中,为什么要使用
[Range]
属性来验证是否在下拉列表中进行了选择????????????????????将视图模型上下拉列表绑定到的Id属性设置为可为空的整数,然后使用
[Required]
属性。