不工作的ASP.NET MVC 2 RC客户端验证
-
22-09-2019 - |
题
我似乎无法得到任何客户端验证在MVC 2 RC应用程序的工作。
我的模型具有以下:
public class ExampleModel
{
[Required(ErrorMessage="Test1 is required")]
[DisplayName("Test1")]
public string Test1 { get; set; }
[Required(ErrorMessage="Test2 is required")]
[DisplayName("Test2")]
public string Test2 { get; set; }
}
我的视图有以下代码:
<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary(true, "Test was unsuccessful.") %>
<% using (Html.BeginForm()) { %>
<div>
<div class="editor-label">Test1:</div>
<div class="editor-field">
<%= Html.TextBoxFor(m => m.Test1) %>
<%= Html.ValidationMessageFor(m => m.Test1) %>
</div>
<div class="editor-label">Test2:</div>
<div class="editor-field">
<%= Html.TextBoxFor(m => m.Test2) %>
<%= Html.ValidationMessageFor(m => m.Test2) %>
</div>
<p>
<input type="submit" value="Test" />
</p>
</div>
我离开这两个领域的空白,并点击测试按钮,它直开到控制器的后处理程序,没有客户端验证发生。我不知道我失踪。
我有以下的javascript也包含在视图(不知道我需要它全部):
<link href="../../Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<link href="../../Scripts/jquery.validate.min.js" type="text/javascript" />
<link href="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript" />
任何想法,我做错了。我觉得我失去了一些东西简单和MVC 2的文档稀疏。
修改强>我已添加的链接:
<link href="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />
和我已经包括在我的项目的文件,我不得不对答案的链接下载。在所有仍然没有工作。任何其他的想法?
修改强>我使用Visual Studio 2008与MVC 2 RC(的不是beta 强>)和我寻找客户端验证的使用的任何可下载的或张贴的例子RC版本。
解决方案 2
好吧,我想通了这一点......这是100%是我的错。虽然,一对夫妇的帖子包含了一些信息,我确实需要也。
主要的问题,对此我感到惊讶没有人注意到,当时我的HTML,包括脚本...在这个职位上抬头见,如果你能看到的问题。
我使用的是<link href=...
标签,而不是正确的<script src=...
标签。完全是我的错,因为我已经在迅速剪切和粘贴不假思索的CSS链接,只是改变了类型和文件。咄!!!
反正所需的正确链接是:
<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
一切正常然后。你肯定确实需要包括“MicrosoftMvcJQueryValidation.js”文件从期货的项目,所以我upvoted是提到的所有帖子。
缺货虽然该文件的箱子不包括在内。如果您不担心使用JQuery那么你可以使用下面包括使用Microsoft的实现将工作与RC的开箱:
<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>
我希望我可以节省至少一人有些悲伤......我仍然无法相信,我怎么可能对长期SOOOOO搞砸了包含和不注意到这一点。
你的帮助再次感谢。
其他提示
当你从MVC 2测试版,使用更新项目: /src/MvcFutures/MicrosoftMvcJQueryValidation.js
从MVC 2 RC源代码包(的链接)。较早的测试版不与RC jquery.validation正常工作。所需的JavaScript文件是:
<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<script src="/Scripts/jquery.validate.min-vsdoc.js" type="text/javascript" />
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />
MicrosoftMvcJQueryValidation.js权版本包含此的 $(文件)。就绪()强>功能:
// need to wait for the document to signal that it is ready
$(document).ready(function() {
var allFormOptions = window.mvcClientValidationMetadata;
if (allFormOptions) {
while (allFormOptions.length > 0) {
var thisFormOptions = allFormOptions.pop();
__MVC_EnableClientValidation(thisFormOptions);
}
}
});
在文件的结尾(在RC释放)。
您必须包括的 MicrosoftMvcJQueryValidation.js 的文件:
<link href="MicrosoftMvcJQueryValidation.js" type="text/javascript" />
检查此:其中是MicrosoftMvcJQueryValidation.js用于MVC 2的β2?
正确的版本在查看下一页只是把Html.EnableClientValidation();
地方。
它必须是要客户端验证第一种形式之前。我喜欢的的Site.Master 的页面。
工作在ASP.NET MVC 2 RC。
你确定你包括了正确的JS文件?由于菲尔·哈克的帖子它MicrosoftMvcJQueryValidation.js
连接,而不是的MicrosoftMvcValidation.js
。
他还设置ClientValidationFunction
属性在视图中:
<% ViewContext.FormContext.ClientValidationFunction
= "EnableClientValidation"; %>
虽然这不是RC,但贝塔。
默认(且仅支持通过Microsoft)验证系统在ASP.NET MVC 2候选发布版不使用jQuery验证。相反,它使用在MicrosoftMvcValidation.js完全存在(尽管你还需要包括MicrosoftAjax.js)的新验证系统。
如果你想使用jQuery验证库,它包含为ASP.NET MVC期货项目的一部分(可用的此处),它是一个单独的下载,并具有其自己的适配器的脚本文件。
另外,关于Html.ValidationSummary()
帮手,我相信它需要包含在表单内,如果你希望它有新的客户端功能。它仍然会工作,如果它的外部形式,但它只会工作的服务器端。