formElementは、MVCクライアント検証とnullです
-
24-09-2019 - |
質問
私はMVCのクライアントの検証を使用しようとすると、「formElementがnullである」取得しています。 誰もが問題に何ができるかについてどのような考えを持っていますか?
Sys.Mvc.NumberValidator.create =関数(ルール){戻りFunction.createDelegate(新しいSys.Mvc.NumberValidator()、新しいSys.Mvc.NumberValidator()検証。);}
ここに私のモデルがあります:
public class EmailViewModel
{
///
/// The user's current email address
///
public string CurrentEmailAddress { get; set; }
///
/// User's new email address
///
[EmailAddress( IsRequired = true, ErrorMessage = "Please enter a valid email address." )]
public string NewEmailAddress { get; set; }
///
/// User's confirmed new email address
///
[EmailAddress( IsRequired = true, ErrorMessage = "Please enter a valid email address. Your emails do not match." )]
public string ConfirmNewEmailAddress { get; set; }
public EmailViewModel()
{
CurrentEmailAddress = "Michael.l.paterson@gmail.com";
NewEmailAddress = string.Empty;
ConfirmNewEmailAddress = string.Empty;
}
}
そして、ここでは、マスターページからスクリプト参照されています
MicrosoftAjax.js
MicrosoftMvcAjax.js
MicrosoftMvcValidation.js
私はこのすべてが表示されますかはわからないが、ここでビューのコードです:
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<%= Html.ValidationSummary( true, "There was an error when processing your request" ) %>
<% Html.EnableClientValidation(); %>
<% Html.BeginForm(); %>
<div class="SecureForm_Wrapper">
<label class="Styled">
<img alt="Reqired" src="../../Content/Images/Misc/required.png" />
New E-Mail</label>
<div class="TheField">
<%= Html.TextBoxFor( m => m.NewEmailAddress, new { id = "NewEmailAddress", name = "NewEmailAddress", @class = "CommonTextBox" } ) %>
<%= Html.ValidationMessageFor( m => m.NewEmailAddress ) %>
</div>
</div>
<div class="SecureForm_Wrapper">
<label class="Styled">
<img alt="Reqired" src="../../Content/Images/Misc/required.png" />
Confirm New E-Mail</label>
<div class="TheField">
<%= Html.TextBoxFor( m => m.ConfirmNewEmailAddress, new { id = "ConfirmNewEmailAddress", name = "ConfirmNewEmailAddress", @class = "CommonTextBox" } )%>
<%= Html.ValidationMessageFor( m => m.ConfirmNewEmailAddress ) %>
</div>
</div>
<div id="BottomButtonContainer">
<a class="button" href="#" id="SubmitButton" style="font-weight: bold;"><span>Save</span></a>
<a class="button" href="#" onclick="this.blur(); return false;"><span>Cancel</span>
</a>
</div>
<% Html.EndForm(); %>
ここでと
でありますないの誰もが問題に何ができるかについてどのような考えを持っている?
解決
私は必要な属性(とIsRequiredこのプロパティを削除)を使用するようにビューモデルを変更する、あなたのビューモデルとビューは私のvalidate罰金に思えます。私はまた、あなたのフォームに送信ボタンを追加する必要がありました。たぶん、問題はEmailAddressのバリ?
の実装であります それはそれは少し難しい解析することができますように、あなたは、あなたの質問の書式設定をより慎重になる場合があります。参考のため、ここでのビューモデルと私はその作品を使用していますクリーンアップ図である。
ビューモデルます:
public class EmailViewModel
{
///
/// The user's current email address
///
public string CurrentEmailAddress { get; set; }
///
/// User's new email address
///
[Required(ErrorMessage = "Please enter a valid email address.")]
public string NewEmailAddress { get; set; }
///
/// User's confirmed new email address
///
[Required(ErrorMessage = "Please enter a valid email address. Your emails do not match.")]
public string ConfirmNewEmailAddress { get; set; }
public EmailViewModel()
{
CurrentEmailAddress = "Michael.l.paterson@gmail.com";
NewEmailAddress = string.Empty;
ConfirmNewEmailAddress = string.Empty;
}
}
表示:
<%= Html.ValidationSummary( true, "There was an error when processing your request" ) %>
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm())
{ %>
New E-Mail
<%= Html.TextBoxFor(m => m.NewEmailAddress)%>
<%= Html.ValidationMessageFor(m => m.NewEmailAddress)%>
<br />
Confirm New E-Mail
<%= Html.TextBoxFor(m => m.ConfirmNewEmailAddress)%>
<%= Html.ValidationMessageFor(m => m.ConfirmNewEmailAddress)%>
<br />
<input type="submit" value="Submit" />
<% } %>
<script src="<%= ResolveUrl("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript" language="javascript"></script>
<script src="<%= ResolveUrl("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript" language="javascript"></script>
<script src="<%= ResolveUrl("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript" language="javascript"></script>
所属していません StackOverflow