問題タブ [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.
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
私は何を間違っていますか?
c# - ASP.NET 5 / MVC 6 で、要求が複数のアクションに一致し、異なるパラメータを持つアクションがあいまいになる
私のプロジェクトには簡単なルートがあります:
私のコントローラーには、2 つのアクションがあります。
api/controller/get?id=1
フレームワークが2つのアクションを区別できないため、URLを実行しようとすると機能しません。私が覚えている限りでは、この URL がそのパラメータに基づくアクションの 1 つだけに一致することは明らかであるため、通常の Web API ではかなりうまく機能しました。何か間違ったことをしたのでしょうか、それとも新しい MVC6 ではサポートされていませんか?
c# - ASP.NET Core の get メソッドに複数のパラメーターを渡す方法
MVC 6 コントローラーの Get メソッドに複数のパラメーターを渡すにはどうすればよいですか。たとえば、次のようなものを持てるようにしたいです。
だから私はのようにクエリすることができます。
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 で呼び出そうとしているメソッドの正確な宣言は次のとおりです。
c# - ASP.NET Core Web Api で複数のクエリ文字列パラメーターを持つ複数の get メソッドを持つ
次のように、3 つの get メソッドが必要なリソースが 1 つある Web API を構築しています。
パラメーター (pointId) が 1 つだけの get メソッドは、クエリ文字列ではなく ID として認識されるため、正常に機能しています。ただし、残りの 2 つの方法は、ASP.NET のルーターでは区別できないようです。
私はここで本当に途方に暮れており、なぜそれが機能しないのか理解できません。私が解決できたのは、メソッドの1つを削除すると、他のメソッドが正常に機能するということです。
私が間違っていることについて何か提案はありますか?
参考までに、対応する url:s は次のようになります。
と
ありがとう!
c# - AmbiguousActionException: 複数のアクションが一致しました。次のアクションはルート データと一致し、すべての制約が満たされていました
ASP.NET Core MVC を使用して Web サイトを作成しています。アクションをクリックすると、次のエラーが表示されます。
これは、ProductsController の index.cshtmlm でアクションを定義する方法です。
これが私のルーティングです:
アクションの定義方法は次のとおりです。
私は何を間違えましたか?
アップデート
@MegaTron に返信していただきありがとうございます。ただし、異なるコントローラーに対して同じアクション パスを使用できない理由を知りたいです。それぞれがエンティティを作成するコントローラーが多数ある場合、提案されたソリューションはうまくスケーリングされないように感じます。