Astributeroutingを使用してデフォルトのASP.NET MVCルートを作成しようとしています

StackOverflow https://stackoverflow.com/questions/9346926

質問

使い始めたばかりです aTtibuterouting 私のASP.NET MVC3アプリケーションを使用。私は-No-コントローラーから始めました。 (新しい空のMVC3アプリケーション)

それから私はエリアを作りました。 (呼ばれた: Documentation)

次に、コントローラーを追加しました(呼び出します: DocumentationController)

それから私はこれをしました。

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index")]
    public ActionResult Index()
    {
        return View();
    }
}

そして、次のルート、機能します: /documentation/index

しかし、どうすればこれらの2つのルートを作ることができますか?

1 - / < - (デフォルトルート /特定のルートなし)2- /documentation <-NO 'INDEX' Subrouteセクションが追加されました。

これを使用できますか aTtibuterouting?

アップデート:

デフォルトのASP.NET MVC3構造などでこれを行う方法を知っています。私がやろうとしていることは、代わりにAttributeroutingを介してこれを理解することです。

役に立ちましたか?

解決

「/」と「/ドキュメンテーション」をDocumentationController.indexにマッピングする必要があると思いますか?もしそうなら、これを行います:

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index", Order = 1)] // will handle "/documentation/index"
    [GET("")] // will handle "/documentation"
    [GET("", IsAbsoluteUrl = true)] // will handle "/"
    public ActionResult Index()
    {
        return View();
    }
}

少し説明:

  • get( "index")には、アクションの主要なルートとしてマークするために注文= 1があります。反射の仕組みにより、注文プロパティを使用せずにアクション上の属性の順序を決定する方法はありません。 こちらをご覧ください
  • 単一のアクションにマッピングされた複数のGetルートを使用できます。 こちらをご覧ください
  • Isabsoluteurrlyプロパティを使用すると、RouteAreaおよびRoutePrefix属性によって追加されたURLプレフィックスをオーバーライドできます。そのため、最終ルートはルートリクエストに一致します。 こちらをご覧ください

お役に立てれば。あなたがやろうとしていることの最初の仮定が間違っている場合は、コメントしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top