Warning: file_put_contents(/datas/wwwroot/jiajiahui/core/caches/caches_template/2/default/show.php): failed to open stream: Permission denied in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 55

Warning: chmod(): Operation not permitted in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 56
ASP.NET MVC 2 RC客户端验证不工作 - 源码之家

ASP.NET MVC 2 RC客户端验证不工作

问题描述:

我似乎无法得到任何客户端验证工作的MVC 2 RC应用程序。ASP.NET 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版本中工作的任何下载或张贴的例子。

好吧,我想通了......这是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'文件,所以我提高了所有提到的文章。

尽管该文件不包括在内,但是开箱即用。如果您不是使用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>  

我希望我可以节省至少一人有些悲伤。 ..我仍然无法相信我怎么能搞砸包括,并没有注意到这么长时间。

再次感谢您的帮助。

你确定你包含正确的JS文件吗?因为在Phill Haack's post它附有MicrosoftMvcJQueryValidation.js而不是MicrosoftMvcValidation.js

他也将在视图中ClientValidationFunction属性:

<% ViewContext.FormContext.ClientValidationFunction 
= "EnableClientValidation"; %> 

虽然这不是RC,但测试版。

+1

''不再适用于RC。它现在是一个函数调用,请参阅:'Html.EnableClientValidation();' – Kelsey 2010-01-05 04:54:17

ASP.NET MVC 2 Release Candidate中的默认(且仅由Microsoft支持)验证系统不使用jQuery Validate。相反,它使用完全存在于MicrosoftMvcValidation.js中的新验证系统(尽管您还需要包含MicrosoftAjax.js)。

如果您想使用jQuery验证库,它将作为ASP.NET MVC Futures项目(可用here)的一部分提供,该项目是一个单独的下载,并且具有自己的适配器脚本文件。

此外,关于Html.ValidationSummary()帮手,我认为如果您希望它具有新的客户端功能,它需要包含在表单中。如果它不在表单中,它仍然可以工作,但它只能在服务器端工作。

+0

嗨,我必须不同意(-1)。 ASP.NET MVC RC支持(如Phill Haack在他的博客中所写)任何兼容的客户端和服务器端验证框架。对于客户端站点,它是jQuery.validate和服务器端xVal,Castle等。 Html.ValidationSummary()不需要在表单内,它可以在页面的任何位置。 – Feryt 2010-01-04 10:22:55

+0

“支持”我的意思是“由微软支持”,我的声明是正确的。 ASP.NET MVC 2 RC中唯一的内置客户端验证提供程序用于新验证库,而不是用于jQuery。您可以插入其他库 - 它们只是不受Microsoft支持。 – Eilon 2010-01-04 18:46:52

您必须包含MicrosoftMvcJQueryValidation。JS文件:

<link href="MicrosoftMvcJQueryValidation.js" type="text/javascript" />

检查:Where is the right version of MicrosoftMvcJQueryValidation.js for MVC 2 beta 2?

下一页只是把Html.EnableClientValidation();某处View页面。 它必须在您想要客户端验证的第一个表单之前。我更喜欢Site.Master页面。

使用ASP.NET MVC 2 RC。

当您从MVC 2 Beta更新项目时,请使用:来自MVC 2 RC源代码包(link)的/src/MvcFutures/MicrosoftMvcJQueryValidation.js。较早的Beta版本无法在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版本)。

+0

我已下载并完全包含此文件,但仍未进行客户端验证。关于如何诊断问题的任何建议? – Kelsey 2010-01-07 18:00:33

+0

尝试: 1)检查页面呈现JS部分的开头是:..if(!window.mvcClientValidationMetadata){.. 不是时,请输入序列: Martin 2010-01-12 11:19:34