asp.net-mvc-3 - 是否可以在 Orchard CMS 中使用标准 ASP.NET MVC Unobtrusive Validation?

标签 asp.net-mvc-3 orchardcms

我正在尝试构建一个自定义模块来与 Orchard CMS 集成以实现业务应用程序。虽然 Orchard CMS 是一个 MVC 应用程序,但似乎不可能(或者至少是容易)完成所有可以通过 MVC“开箱即用”完成的事情。

我正在尝试对我的 View 进行不显眼的验证,但似乎无法使其发挥作用。

更新:根据下面 Rohan West 的建议,我现在已经使用 ResourceManifest 类和 Script.Require 调用将脚本包含在页面中。

但是,尽管我使用 @Html.EditorFor 的属性具有 .NET 属性,但实际 HTML 元素上的验证属性并未生成。

我在 web.config 文件中设置了 appSettings,如下所示:

<appSettings>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>      

    <add key="webpages:Enabled" value="false" />
    <add key="log4net.Config" value="Config\log4net.config" />
</appSettings>

还是没有快乐!

更新 2:根据 Rohan West 的建议,修改 OrchardStarter 类以注释掉以下几行“解决”问题:

    ModelValidatorProviders.Providers.Clear();
    ModelValidatorProviders.Providers.Add(new LocalizedModelValidatorProvider());

不过应该​​有更好的方法来处理这个问题。

最佳答案

您需要在模块的资源 list 中定义脚本。

public class ResourceManifest : IResourceManifestProvider
{
    public void BuildManifests(ResourceManifestBuilder builder)
    {
        var manifest = builder.Add();

        manifest.DefineScript("jQueryValidation").SetUrl("jquery.validate.js", "jquery.validate.min.js").SetVersion("1.7").SetDependencies("jQuery");
        manifest.DefineScript("jQueryValidation_Unobtrusive").SetUrl("jquery.validate.unobtrusive.js", "jquery.validate.unobtrusive.min.js").SetDependencies("jQuery", "jQueryValidation");
    }
} 

然后在您的页面中

@{ 
    this.Script.Require("jQueryValidation_Unobtrusive").AtHead(); 
}

看看下面的类

Orchard.Environment.OrchardStarter

在 Orchard 1.4.2 中,有一行删除了所有 ModelValidatorProviders

ModelValidatorProviders.Providers.Clear();

这将从集合中删除默认的 DataAnnotationsModelValidatorProvider。 您可以尝试将其添加到集合中,

关于asp.net-mvc-3 - 是否可以在 Orchard CMS 中使用标准 ASP.NET MVC Unobtrusive Validation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778897/

相关文章:

c# - 在数据网格中显示交替行颜色

azure - Windows Azure 上 Orchard 性能缓慢

list - Orchard 查询列表渲染 - 移除 ul li

asp.net-mvc-3 - Razor 语法动态命名HTML元素

c# - MVC HTML 帮助程序和 Lambda 表达式

orchardcms - 在 Orchard CMS 中链接内容部分

error-handling - 在Orchard中手动渲染ErrorPage形状

asp.net-mvc-3 - ASP.NET MVC3 - 使用 DependencyResolver 和温莎城堡 : Why?

c# - jQuery.ajax() 发送的空值绑定(bind)到模型中的 "null"字段