Astributeroutingを使用してデフォルトのASP.NET MVCルートを作成しようとしています
-
27-10-2019 - |
質問
使い始めたばかりです 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プレフィックスをオーバーライドできます。そのため、最終ルートはルートリクエストに一致します。 こちらをご覧ください
お役に立てれば。あなたがやろうとしていることの最初の仮定が間違っている場合は、コメントしてください。
所属していません StackOverflow