1

私の MVC アプリには多くのビュー (約 20 から 30) があります。現在、それらはすべて私の HomeController にありますが、非常に長くなりました。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        return View();
    }

    /* *SNIP* 29 actions later... */
}

MVC 4 で静的コンテンツ ページを処理する最良の方法は何ですか? それらを HomeController に配置するのが最善ですか、それとも各情報領域に関連する別のコントローラーを用意するのが最善ですか?

MVCは他のすべての要件に最適であるため、CMSの使用は本当に避けたいです。

4

1 に答える 1

1

モデルまたはビューバッグを使用してビューにデータを渡さない場合は、インデックス アクションを 1 つだけにして、ルートからのパス パラメータを使用して、使用するビューを決定してみませんか?

だから、このようなもの

コントローラ

public class HomeController : Controller
{
    public ActionResult Index(string path)
    {
        return View(path);
    }    
}

ルート

routes.MapRoute(
    name: "Default", // Route name
    url: "{controller}/{action}/{*path}" // URL with parameters
);

または、URLにホーム/インデックスを何度も含めたくない場合は、これを実行してください

routes.MapRoute(
    name:"Catchall",
    url: "{path}",
    defaults: new { controller = "Home", action = "Index", path = "DefaultView" }
);
于 2013-06-02T21:53:48.723 に答える