は、私たちすべてが、常にexample.com/controller/action?param1=value1¶m2=value2
ASP.NET MVC 5のQueryStringでActionNameを設定する方法はありますか?
example.com/controller?aciton=index¶m1=value1¶m2=value2
(予告クエリ文字列に
アクション=インデックス)のようなクエリ文字列にアクション名を入れる方法がある知っているように思い
ようにASP.NET MVCでURLを知っていますASP.NET MVCがurlを対応するコントローラとアクションにルーティングするようにします。クエリ名の名前はaction
などです。
--- 9月28日を更新---
私は、フォーム内で、フォームを持っている実態が(など、削除、編集、作成した各列と、いくつかのボタンのラジオボタンを持つテーブルであります)。これらのボタンは、同じコントローラーで異なるアクションに移動します。
検索の結果、私はいくつかのソリューションを持っている:
- ではJavaScript経由でのonSubmit処理し、フォームのactionプロパティを変更します。 Answer link
- コントローラに「ルート」メソッドを書き込んでリクエストを再ルーティングします。 Answer link(これは優雅な解決策ではないと思います)
- カスタム属性を書き込むと、ASP.NET MVCがクエリの対応するアクションベースにルーティングされます。 This anwserとthis answer(私のオリジナルのアイデアに非常に近い、私は現在、このソリューションを使用しています)
私は、ルート設定で遊んでいることをお勧めします。ルーティングを経由して直接実行できない場合は、 'action'パラメータを評価し、指定されたアクションにリダイレクトする 'ハンドラ'アクションへのルートにすることができます。十分にシンプルにする必要があります – musefan
一般的に、ルートconfig内のルートはクエリ文字列では設定できません。それをやろうとすると、エラーが発生します。ルーティングの主な慣習を乗り越える方法があるかどうかはわかりません。あなたがこれをしたいと思う理由はありますか?それはMVCの慣習を冗長にします。 – Luke
ルートコンフィグレーションでクエリ文字列を設定する必要はありません。また、クエリ文字列をチェックし、クエリ文字列名と一致するパラメータ名があると仮定して、アクションパラメータにマッピングします –