問題タブ [asp.net-core-routing]

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 投票する
1 に答える
8113 参照

c# - MVC 6 でのルーティング

私は2つのメソッドを持つ非常にシンプルなコントローラーを持っています:

1 つはすべてのユーザーを選択し、もう 1 つはすべてのユーザーを返します。Web API 2 では、次のルートを使用でき、すべて正常に機能しました。

startup.cs で次のルートを設定しています。

しかし、これは私にAmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied

私は何を間違っていますか?

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

c# - ASP.NET 5 / MVC 6 で、要求が複数のアクションに一致し、異なるパラメータを持つアクションがあいまいになる

私のプロジェクトには簡単なルートがあります:

私のコントローラーには、2 つのアクションがあります。

api/controller/get?id=1フレームワークが2つのアクションを区別できないため、URLを実行しようとすると機能しません。私が覚えている限りでは、この URL がそのパラメータに基づくアクションの 1 つだけに一致することは明らかであるため、通常の Web API ではかなりうまく機能しました。何か間違ったことをしたのでしょうか、それとも新しい MVC6 ではサポートされていませんか?

0 投票する
14 に答える
397376 参照

c# - ASP.NET Core の get メソッドに複数のパラメーターを渡す方法

MVC 6 コントローラーの Get メソッドに複数のパラメーターを渡すにはどうすればよいですか。たとえば、次のようなものを持てるようにしたいです。

だから私はのようにクエリすることができます。

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

c# - Url.Action が、ルート アノテーションを使用してコントローラで指定されたルートで機能しない

次のような AdminController があります。

AdminController [Route("admin")]

Index() (landing page for all administrative content)

UserIndex() - [Route("users")]
UserDetails() - [Route("users/details/{id}")]

RoleIndex() - [Route("roles")]
RoleDetails() - [Route("roles/details/{id}")]

これらは次の URL パターンと同じです。

管理者/ユーザー
管理者/ユーザー/詳細/1

ただし、私のビューで次のことを実行しようとすると、機能しません。

これは、'/admin/users/details' を出力するのに十分スマートではないでしょうか?

Url.Action("Index", "Admin")ルートタグがないため、そうしないと機能しません。

アップデート:

Kendo Grid ClientTemplate 列でKendo Template Syntaxを使用しようとしています:

各行のリンクは次のようになります: 'localhost:9000/123' /admin/users/detail は完全に無視されます...

AdminController で呼び出そうとしているメソッドの正確な宣言は次のとおりです。

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

c# - ASP.NET Core Web Api で複数のクエリ文字列パラメーターを持つ複数の get メソッドを持つ

次のように、3 つの get メソッドが必要なリソースが 1 つある Web API を構築しています。

パラメーター (pointId) が 1 つだけの get メソッドは、クエリ文字列ではなく ID として認識されるため、正常に機能しています。ただし、残りの 2 つの方法は、ASP.NET のルーターでは区別できないようです。

私はここで本当に途方に暮れており、なぜそれが機能しないのか理解できません。私が解決できたのは、メソッドの1つを削除すると、他のメソッドが正常に機能するということです。

私が間違っていることについて何か提案はありますか?

参考までに、対応する url:s は次のようになります。

ありがとう!

0 投票する
5 に答える
43781 参照

c# - AmbiguousActionException: 複数のアクションが一致しました。次のアクションはルート データと一致し、すべての制約が満たされていました

ASP.NET Core MVC を使用して Web サイトを作成しています。アクションをクリックすると、次のエラーが表示されます。

これは、ProductsController の index.cshtmlm でアクションを定義する方法です。

これが私のルーティングです:

アクションの定義方法は次のとおりです。

私は何を間違えましたか?

アップデート

@MegaTron に返信していただきありがとうございます。ただし、異なるコントローラーに対して同じアクション パスを使用できない理由を知りたいです。それぞれがエンティティを作成するコントローラーが多数ある場合、提案されたソリューションはうまくスケーリングされないように感じます。