別のビューの中に部分的なビューがあります。部分ビューは「ログオン」部分です。そして私はjquery検証を使用しています。添付画像をご覧ください。
ここでの要件は、すでにサインアップしている人がユーザー名/パスワードを入力して次のページに進むことです。(ログオン部分ビュー)そしてまだサインアップしていない人は、eメール/パスワード/フルネームを入力して次のページに進みます。(メインビューで)
メインビューには、いくつかの必須フィールドがあります。例:メール、パスワードなど。問題は、ログオン部分ビューにユーザー名/パスワードを入力すると、続行できないことです。メインビューの必須フィールドにエラーが表示されます。
そして、これはIEでのみ発生します。FFとCromeでは、希望どおりに機能します。
この場合どうするか考えてみませんか?
コード:ログオン部分:
<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
<% using (Html.BeginForm("LogOn", "Account", new { returnUrl = Request.QueryString["returnUrl"] }))
{ %>
<div>
<div class="editor-label">
<%:Html.Label("Email") %>
</div>
<div class="editor-field">
<%:Html.TextBoxFor(m => m.UserName, new { style = "width:350px;" })%>
</div>
<div class="editor-label">
<%:Html.LabelFor(m => m.Password)%>
</div>
<div class="editor-field">
<%:Html.PasswordFor(m => m.Password, new { style = "width:350px;" })%>
</div>
<p>
<input type="image" value="Log On" title="Log On" src="../../Content/images/signinnew.png"/>
</p>
</div>
<%} %>
メインビュー:
<script type="text/javascript">
$(document).ready(function () {
<%if (User.Identity.IsAuthenticated)
{ %>
$("#logindata").hide();
<%}
else
{%>
$('#logindata').load("/Account/LogOn?returnUrl= <%:HttpContext.Current.Request.RawUrl%>");
<%} %>
</script>
<%using (Html.BeginForm())
{ %>
<fieldset>
<legend></legend>
<div id="logindata" style="border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #CCCCCC;margin-bottom:10px;">
**// I am loading the logon partial view here.**
</div>
<div class="editor-label">
<%: Html.LabelFor(m => m.DeliveryInfo.Email)%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(m => m.DeliveryInfo.Email)%>
</div>
<div id="tohide">
<div class="editor-label">
<%: Html.LabelFor(m => m.DeliveryInfo.Password)%>
</div>
<div class="editor-field">
<%: Html.PasswordFor(m=>m.DeliveryInfo.Password)%>
</div>
<div class="editor-label">
<%: Html.LabelFor(m => m.DeliveryInfo.ConfirmPassword)%>
</div>
<div class="editor-field">
<%: Html.Password("ConfirmPassword")%>
<br />
<%:Html.ValidationMessageFor(m=>m.DeliveryInfo.ConfirmPassword) %>
</div>
</div>
<div class="editor-label">
<%: Html.Label("Fullname")%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(m => m.DeliveryInfo.Name)%>
</div>
</fieldset>
</div>
<%}%>