.NET MV 4 Remoteリモート検証の注意事項とケース
8675 ワード
まずモデルコード
コントローラ:
ビューページ
注意しなければならないのは
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval")
参照されるJSバインドファイルの順序を逆転することはできません
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
これにより、romoteリモート検証は無効になります.
これはページ生成のコードです
逆転できない理由もjquery検証ファイルです
jqueryプライマリファイルより先にインポートできません
だから必ず導入順序に注意して、私はこの問題に注意していないで、2時間振り回して、崩壊します!
public class LoginModel
{
[Required]
[Display(Name = " ")]
[Remote("CheckName", "Account", ErrorMessage = " ")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = " ")]
public string Password { get; set; }
[Required]
[Display(Name = " ")]
//[Remote("CheckValidateCode", "Account", ErrorMessage = " ")]
[Editable(true)]
public string ValidateNumber { get; set; }
}
コントローラ:
[HttpGet]
[AllowAnonymous]
[OutputCache(Location = System.Web.UI.OutputCacheLocation.None, NoStore = true)] //
public JsonResult CheckName(string UserName)
{
if (UserName.Length > 10)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
else
{
return Json(" ", JsonRequestBehavior.AllowGet);
}
}
ビューページ
@model UMoney.Site.Models.LoginModel
@{
ViewBag.Title = "";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Login</h2>
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>“ ” </legend>
<ol> <li>
@Html.LabelFor(m => m.ValidateNumber)
@Html.EditorFor(m => m.ValidateNumber)
<img id="valiCode" style="cursor: pointer;" src="/Account/GetValidateCode" alt=" " onClick="javascript:this.src='/Account/GetValidateCode?'+ Math.random()" />
@Html.ValidationMessageFor(m => m.ValidateNumber)
</li>
<li>
@Html.LabelFor(m => m.UserName)
@Html.EditorFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</li>
</ol>
<input type="submit" value=" " />
</fieldset>
<p>
@Html.ActionLink("Register", "Register") ( )。
</p>
}
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
注意しなければならないのは
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval")
参照されるJSバインドファイルの順序を逆転することはできません
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jquery")
これにより、romoteリモート検証は無効になります.
これはページ生成のコードです
逆転できない理由もjquery検証ファイルです
jqueryプライマリファイルより先にインポートできません
だから必ず導入順序に注意して、私はこの問題に注意していないで、2時間振り回して、崩壊します!