2

Orchard CMS と統合してビジネス アプリケーションを実装するカスタム モジュールを構築しようとしています。Orchard CMS は MVC アプリケーションですが、MVC で「すぐに」実行できるすべてのことを実行するのは不可能 (または少なくとも簡単) ではないようです。

ビューで目立たない検証を機能させようとしていますが、これを機能させることができないようです。

更新: 以下の 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());

ただし、これを処理するより良い方法があるはずです。

4

1 に答える 1

3

モジュールのリソース マニフェストでスクリプトを定義する必要があります。

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 がコレクションから削除されます。コレクションに追加してみてください。

于 2012-05-28T03:09:13.160 に答える