1

ASP.NET MVC3サンプルプロジェクトを使用していて、ルートURLに直接移動する新しいリンクをページに追加したいので、mydomain.com / Home/Aboutの代わりにmydomain/Aboutを実行します。

このページでは、新しいルートを追加することを提案しています。http://weblogs.asp.net/gunnarpeipman/archive/2011/04/17/asp-net-mvc-defining-short-urls-for-root-level-pages.aspx

別の方法はありますか?ルートに5つのページがあるとしましょう。それぞれに特別なルートを追加する必要がありますか?

4

1 に答える 1

0

ホームコントローラーのアクションをリダイレクトするだけでなく、多数のシングルパス要求/応答を実行しようとしているという仮定の下では、これはオプションです。

あなたが提供するリンクはそれをする一つの方法です。もう1つは、デフォルトルートを使用して5つのコントローラーを作成することです。どちらが良いかはわかりませんが(実際の5つのパスが不足しているため)、どちらも同じ結果になります。デフォルトルートが次のようになっている場合:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", 
          id = UrlParameter.Optional } // Parameter defaults
); 

基本的に、デフォルトのコントローラーはホームであり、デフォルトのアクションはインデックスであると述べています。これらの値は相互に包括的ではありません。つまり、デフォルト値にするためにどちらも他方を必要としませんでした。

したがって、次のことができます。

website.com/about with

public AboutController
{
  public ActionResult index()
  {
    return this.View();
  }
}

および/またはwebsite.com/peoplewith

public PeopleController
{
  public ActionResult index()
  {
    return this.View();
  }
}
于 2012-04-21T00:00:18.950 に答える