不显眼的验证editorfor

问题描述:

我有一个部分View,从Action加载的,所以父视图包含:不显眼的验证editorfor

@Html.Action("TourSearch") 

的TourSearch查看使用编辑器,例如:

@Html.EditorFor(model => model.ImpersonatedAgentModel, "ImpersonatedAgentView") 

其中ImpersonatedAgentModel是这样的:

[Serializable] 
    public class ImpersonatedAgentModel 
    { 
    [Required(ErrorMessage = "Please provide a User ref")] 
    public string AgentImpersonatedUserName { get; set; } 
    [Required(ErrorMessage="Please provide a ABTA/AgencyCode")] 
    public string AgentImpersonatedBranchCode { get; set; } 
    [Required(ErrorMessage = "Please provide a User ref")] 
    public int? AgentImpersonatedBranchID { get; set; } 
    } 

我的编辑器很漂亮raight forward:

@model Travel2.WebUI.Models.ImpersonatedAgentModel 

<ul id="agencyDetails"> 
    <li> 
     <label for="AgentImpersonatedBranchCode">ABTA/Agency Code: *</label> 
     @Html.TextBoxFor(model => model.AgentImpersonatedBranchCode, new {ID="txtBranchCode" }) 
      @Html.ValidationMessageFor(model => model.AgentImpersonatedBranchCode, "*") 
     <input id="txtBranchId", type="hidden" value="@Model.AgentImpersonatedBranchID" /> 
     <input id="txtUserName", type="hidden" value="@Model.AgentImpersonatedUserName" /> 
     <input id="hidCurrentController" type="hidden" value='@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue' /> 
    </li> 
    <li> 
     <label for="AgentImpersonatedUserName">User ref: *</label> 
     <select id="ddlUser" disabled="disabled" ></select> 
       <input type="hidden" id="txtUserID" /> 
       @Html.HiddenFor(model => model.AgentImpersonatedUserName, new {ID="AgentImpersonatedUserName" }) 
       @Html.HiddenFor(model => model.AgentImpersonatedBranchID, new {ID="AgentImpersonatedBranchID"}) 
          @Html.ValidationMessageFor(model => model.AgentImpersonatedUserName, "*") 

    </li> 

</ul> 

现在在Chrome中,一切正常。但是当我填写表格IE而不是编辑器中的数据时,它通过验证不正确

如果我检查标记,使用IE的借口差Firebug的,我可以看到验证属性,

<input name="ImpersonatedAgentModel.AgentImpersonatedBranchCode" id="txtBranchCode" type="text" data-val="true" data-val-required="Please provide a ABTA/AgencyCode" jQuery172048066185567747205="94"/> 

那么为什么IE忽略他们!愚蠢的IE

+0

什么版本的IE浏览器您使用的是? – Robert

+0

IE 9.不兼容模式 – Liam

+0

你有两个编辑器导致完整的编辑器代码使用TextBoxFor – Robert

在这里找到了答案:

http://www.tigraine.at/2011/08/26/jquery-validate-and-microsofts-unobtrusive-validation-dont-play-well-together/

我们引用jQuery验证过,这似乎是造成这个错误