2011-01-11 18 views
0

私は、次の2つのアクション・メソッドを使用している場合:アクションメソッドのカスタム属性のASP.NET MVCルーティングを設定するにはどうすればよいですか?

public ActionResult Index(String id) { //do something based on id }

public ActionResult Index(MyCustomViewModel vm) { //do something based on view model provided }

私はあいまいなメソッドエラーを取得しています。両方のルートを確実にするためにルートを設定するにはどうすればよいですか?

答えて

1

同じ名前で2つのアクションを設定することはできません。同じHTTP動詞とルートはここでは役に立ちません。

public ActionResult Index(string id) { ... } 

[HttpPost] 
public ActionResult Index(MyCustomViewModel vm) { ... } 
+0

Postフィルタ属性を追加した後も、id = nullのIndex(文字列id)アクションメソッドに移動します。 Html.ActionLinkヘルパーを使用してPost Actionメソッドにリダイレクトするにはどうすればよいですか? – neebz

+0

@nEEbz、そうすることはできません。 Html.ActionLinkは常にGETリクエストを送信します。 POSTリクエストを送信するか、またはJavaScriptを使用してActionLinkをAJAXifyし、デフォルトのGETではなくAJAX POSTリクエストを送信するHTML「

」を使用することができます。 –

+0

私は非常に馬鹿だと思っているかもしれませんが、Model Bindingというものは何ですか?私はクエリ文字列でパラメータを送信し、MVCはそれらをビューモデルオブジェクトにインテリジェントにバインドし、それをアクションメソッドに渡しますか? – neebz

関連する問題