我似乎无法得到任何客户端验证在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()帮手,我相信它需要包含在表单内,如果你希望它有新的客户端功能。它仍然会工作,如果它的外部形式,但它只会工作的服务器端。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top