0

Viewからロードされた部分的なを持っているActionので、親ビューには次のものが含まれています。

@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; }
  }

私のエディタは非常に単純です:

@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でフォームに入力し、エディターでデータを入力しないと、検証に誤って合格します。

マークアップを調べて、FirebugのIEの貧弱な言い訳を使用すると、検証属性を確認できます。

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

では、なぜIEはそれらを無視するのですか?愚かなIE

4

1 に答える 1

1

ここで答えを見つけました:

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

Jquery検証も参照していましたが、これがこのエラーの原因のようです

于 2013-01-24T14:46:55.270 に答える