1

私はほぼスタンドアロンのオーチャードモジュールを持っています。これは、コントローラーとビューのコレクションで構成されるアプリであり、独自のEFベースのデータアクセスを実行します。

Orchardにこのモジュールをインストールしてアクティブ化したら、コントローラーアクションを要求し、それに応じてビューを提供するにはどうすればよいですか?クラスが必要であることを理解しておりRoutes、モジュールへのアクセスを有効にするためにここで実行する必要があると思われます。モジュールが実際にはエリアであることは知っていますが、それでもRoutesクラスを理解するために戦います。

私のモジュールに、ホーム/インデックスである1つのコントローラー、アクションとビュー、ホーム、インデックス、およびインデックスがあるとします。IndexOrchardが稼働したら、この特定のアクチンにアクセスするにはどうすればよいですか?

4

1 に答える 1

1

Orchardのドキュメントには、独自のコントローラーを使用するOrchardモジュールを作成するための優れたガイドがあります。

HelloWorldというモジュールのルートを作成するガイドから抜粋したコードサンプルを次に示します。

using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Routing;
using Orchard.Mvc.Routes;

namespace HelloWorld {
    public class Routes : IRouteProvider {
        public void GetRoutes(ICollection<RouteDescriptor> routes) {
            foreach (var routeDescriptor in GetRoutes())
                routes.Add(routeDescriptor);
        }

        public IEnumerable<RouteDescriptor> GetRoutes() {
            return new[] {
                new RouteDescriptor {
                    Priority = 5,
                    Route = new Route(
                        "HelloWorld",
                        new RouteValueDictionary {
                            {"area", "HelloWorld"},
                            {"controller", "Home"},
                            {"action", "Index"}
                        },
                        new RouteValueDictionary(),
                        new RouteValueDictionary {
                            {"area", "HelloWorld"}
                        },
                        new MvcRouteHandler())
                }
            };
        }
    }
}

IRouteProviderを実装するクラスを作成する場合は、コントローラーのルートをOrchardに知らせることができます。

于 2013-02-22T09:51:41.063 に答える