我有一个 HTML 表单,它在我的网站中使用不显眼的验证,它是一个 ASP.Net MVC4 应用程序。我认为表格很简单,如下所示
@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;}
}
我遇到的问题是,即使在我的第一个表单提交之前,页面加载时就会启动不显眼的验证。由于最小长度验证,我一开始输入,名称的文本框就会变成红色。我已经成功地使用了不显眼的验证,并且在同一网站的其他页面上没有这个问题。我怀疑验证在这个特定页面的早期就开始了,因为我的控制器中的代码从 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>