問題タブ [attributerouting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 属性ルーティングを使用して Web API のビューで URL を構築する
ビューでWeb APIからURLを取得するにはどうすればよいですか?
例 ( msdn-blogから):
ビューで「/reviews/edit」を作成したいのですが、どうすればよいですか?
少し拡張メソッドを作成しようとしましたが、すべてのルートに実際の「RouteName」を指定する必要があります。コントローラーとアクションを渡すだけで (MVC のように) 使用できる方法はありますか?
私が現在 (RouteName を使用して) 使用している方法でも、(デフォルト値を渡さない限り) 整数をパラメーターとして使用することはできません。すべてのルートに名前を付ける必要がある場合、ルート URL を作成し、リクエストの「データ」部分にパラメータを渡すにはどうすればよいですか?
現在の方法:
編集
のようなメソッドを使用するとUrl.RouteUrl(new { controller = ..., action = ...})
、そのアクションに直接リダイレクトされます(たとえばnew { controller = "Reviews", action = "Show"} --> /reviews/show
、リダイレクトしたいのに/reviews/...
asp.net-mvc-5 - URL に一致する複数のコントローラ タイプが見つかりました。これは、複数のコントローラーの属性ルートが要求された URL と一致する場合に発生する可能性があります
...これについて尋ねるのは私が最初だと思いますか?
次のルートがあり、それぞれが異なるコントローラーで宣言されているとします。
...パラメータを除いて同じコードを使用して、MVC 5.0でこれを行うことができOrder
ます。しかし、MVC 5.1 にアップグレードした後、質問のタイトルに例外メッセージが表示されます。
URL に一致する複数のコントローラ タイプが見つかりました。これは、複数のコントローラーの属性ルートが要求された URL と一致する場合に発生する可能性があります。
新しいRouteAttribute.Order
プロパティはコントローラ レベルのみですか? AttributeRouting.NET でもできることを知っていSitePrecedence
ます。すべてのアクションが同じコントローラーにある場合、上記のようなルートを持つ唯一の方法はありますか?
アップデート
申し訳ありませんが、これらのルートは WebAPI ではなく MVC コントローラー上にあると言及する必要がありました。これが ApiControllers にどのように影響するかはわかりません。
c# - 「routes.MapMvcAttributeRoutes()」を RegisterRoutes() に追加する利点は何ですか?
記事「ASP.NET MVC5 の新機能」によると、属性ルーティングを使用するには、これを RegisterRoutes() メソッドに追加する必要があります。
...そのため、メソッドは次のようになります。
その追加/中間呼び出しはありません。私の属性ルーティングはうまく機能しています。
それで、それを追加することは私にとって何をしますか?
asp.net-mvc - 複数の DateTime パラメーターの属性ルーティング
日時として2つのパラメーターを取る属性ルートを定義しました
しかし、それがどのように可能かはわかりません。属性ルートは単一のパラメーターに対しては正常に機能しますが、2 つのパラメーターに対してどのように機能するかはわかりません。また、URL から 2 つのパラメーターを区別する方法を知ることは困難です。
正常に動作する単一のパラメーター
http://domain.com/Home/overview/2014/02/01
2 つのパラメーターの URL はどうなりますか? 以下を試しましたが、例外が発生しました
asp.net-mvc-routing - MVC5 : コントローラー間の属性ルーティングの優先順位
コントローラーで MVC5 の属性ルーティングを使用しています。
質問:
コントローラー間で属性ルーティングの優先順位を制御する方法はありますか?
次のことを考慮してください
上記のコードに基づいHomeController.Index()
て、次のリクエストを使用してアクション メソッドを呼び出す必要があります。
- ドメイン/
- ドメイン/{ユーザー名}
- ドメイン/ホーム/
- ドメイン/ホーム/{ユーザー名}
- ドメイン/ホーム/インデックス/
- ドメイン/ホーム/インデックス/{ユーザー名}
2 番目のコントローラー:
はProfileController.Index()
、次のリクエストを使用して呼び出す必要があります。
- ドメイン/プロフィール
- ドメイン/プロファイル/インデックス
問題
例から、URL を送信domain/profile
すると、あいまいな例外がスローされます。domain/{username}
と の間にあいまいさがあるようですdomain/profile
。
ここで、規則ベースのルーティングを使用した場合、これはうまくいきます (最初の一致が勝ちます)。しかし、MVC5 属性ルーティングでそれを行うことはできますか? サードパーティのライブラリがコントローラー間の優先順位をサポートしていることがわかったため
https://github.com/mccalltd/AttributeRouting/wiki/Controlling-Route-Precedence