ASP.NetMVC4アプリケーションであるWebサイトで控えめな検証を使用するHTMLフォームがあります。私の見解からのフォームは単純で、以下に示されています
@Using (Html.BeginForm())
{
@: Listing for @ViewBag.itemNumber
@Html.TextBoxFor(model=>model.Name)
@Html.TextBoxFor(model=>model.Location)
@:<input type="submit" value="Save" />
}
私のコントローラーは以下のとおりです
public ActionResult test()
{
string itemNumber = Request.params["item"];
ViewBag.itemNumber = itemNumber;
return View();
}
私のモデルは
public class item
{
[StringLength(10, ErrorMessage = "The Name should be atleast 3 characters in length", MinimumLength = 3)]
public string Name {get;set;}
public string Location {get;set;}
}
私が抱えている問題は、最初のフォームが送信される前であっても、ページが読み込まれるとすぐに目立たない検証が開始されることです。最小の長さの検証のため、入力を開始するとすぐに[名前]のテキストボックスが赤に変わります。同じWebサイトの他のページで、目立たない検証を正常に使用しましたが、この問題は発生しませんでした。URL GETパラメーターから値を取得してViewbagに設定するコントローラーのコードが原因で、この特定のページの早い段階で検証が開始されていると思われます。私の仮定は正しいですか?もしそうなら、どうすればこのページで検証が早すぎるのを防ぐことができますか?
編集:私は私のページに以下に指定されたのと同じ順序で次のjavascriptライブラリを持っています
<script src="~/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui-1.9.0.min.js" type="text/javascript"></script>
<script src="~/Scripts/jQuery.tmpl.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>