范围验证在MVC3中无法正常工作

时间:2011-02-28 15:18:56

标签: asp.net-mvc-3 data-annotations

我使用以下代码在Asp.Net MVC 3应用程序中生成数据验证javascript

[DisplayName("Latitude Degrees")]
[Range(0, 90, ErrorMessage = "Latitude degrees must be between {1} and {2}")]
public Int32? LatitudeDegrees { get; set; }

在视图模型上。当它是MVC2时,这工作得很好,如果我在文本框中输入0-90之外的值,我得到了验证警告。

由于我将应用程序移动到MVC 3,每当我将任何值放入texbox,合法或非法时,我都会在其旁边显示验证错误。

我将EnableClientValidation设置为true并禁用UseUnobtrusiveJavascript(web.config或视图中没有任何内容将其打开)。

2 个答案:

答案 0 :(得分:3)

如果您希望在网络配置中进行不引人注目的客户端验证,请尝试将ClientValidationEnabledUnobtrusiveJavaScriptEnabled设置为true。然后确保已删除MicrosoftAjax*客户端脚本库的所有痕迹,并包含jquery和jquery.validate,因为这是MVC 3使用的:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript">    </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

答案 1 :(得分:2)

我不能重现你的问题!我正在使用ASP.NET MVC3,将ClientValidationEnabled设置为true,将UnobtrusiveJavaScriptEnabled设置为false,我尝试了相同的属性(实际上是复制粘贴它们),一切似乎都按预期工作。除了你在这里列出的内容之外,问题可能出在其他地方。