問題タブ [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.

0 投票する
3 に答える
11156 参照

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/...

0 投票する
3 に答える
20060 参照

asp.net-mvc-5 - URL に一致する複数のコントローラ タイプが見つかりました。これは、複数のコントローラーの属性ルートが要求された URL と一致する場合に発生する可能性があります

...これについて尋ねるのは私が最初だと思いますか?

次のルートがあり、それぞれが異なるコントローラーで宣言されているとします。

...パラメータを除いて同じコードを使用して、MVC 5.0でこれを行うことができOrderます。しかし、MVC 5.1 にアップグレードした後、質問のタイトルに例外メッセージが表示されます。

URL に一致する複数のコントローラ タイプが見つかりました。これは、複数のコントローラーの属性ルートが要求された URL と一致する場合に発生する可能性があります。

新しいRouteAttribute.Orderプロパティはコントローラ レベルのみですか? AttributeRouting.NET でもできることを知っていSitePrecedenceます。すべてのアクションが同じコントローラーにある場合、上記のようなルートを持つ唯一の方法はありますか?

アップデート

申し訳ありませんが、これらのルートは WebAPI ではなく MVC コントローラー上にあると言及する必要がありました。これが ApiControllers にどのように影響するかはわかりません。

0 投票する
1 に答える
3543 参照

c# - 「routes.MapMvcAttributeRoutes()」を RegisterRoutes() に追加する利点は何ですか?

記事「ASP.NET MVC5 の新機能」によると、属性ルーティングを使用するには、これを RegisterRoutes() メソッドに追加する必要があります。

...そのため、メソッドは次のようになります。

その追加/中間呼び出しはありません。私の属性ルーティングはうまく機能しています。

それで、それを追加することは私にとって何をしますか?

0 投票する
1 に答える
5972 参照

asp.net-mvc - 複数の DateTime パラメーターの属性ルーティング

日時として2つのパラメーターを取る属性ルートを定義しました

しかし、それがどのように可能かはわかりません。属性ルートは単一のパラメーターに対しては正常に機能しますが、2 つのパラメーターに対してどのように機能するかはわかりません。また、URL から 2 つのパラメーターを区別する方法を知ることは困難です。

正常に動作する単一のパラメーター

http://domain.com/Home/overview/2014/02/01

2 つのパラメーターの URL はどうなりますか? 以下を試しましたが、例外が発生しました

http://domain.com/Home/overview/2014/02/01/2014/02/04

0 投票する
1 に答える
1078 参照

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