不显眼的验证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
答
在这里找到了答案:
我们引用jQuery验证过,这似乎是造成这个错误
什么版本的IE浏览器您使用的是? – Robert
IE 9.不兼容模式 – Liam
你有两个编辑器导致完整的编辑器代码使用TextBoxFor – Robert