0

2 つの異なるクエリ文字列を処理するようにコントローラーを変更する必要がありますが、同じ数の引数を使用するため、同じ名前と同じ数の引数を持つ 2 つの関数を使用できないようです。

エラー

The current request for action 'FollowUp' on controller type 'ContactController' is ambiguous between the following action methods:

どうすればこれを行うことができますか?

*文字列 #1 string,int * ?contacted=true&id=7889876

文字列 #2 string,string ?contacted=true&pid=AWRE-9876-POKJ-112WQ

現在のコントローラー

 [HttpGet]
 public ActionResult FollowUp(string contacted, int id) {}

ありがとう!

4

2 に答える 2

2

2 つの関数を作成するのではなく、3 つの引数を持つ単一の関数を作成し、それに応じてロジックを使用します。

例:

[HttpGet]
public ActionResult FollowUp(string contacted, string pid, int? id) 
{
   if(!string.IsNullOrEmpty(contacted) && !string.IsNullOrEmpty(pid)) {
      // do your logic.
   }
   else if(!string.IsNullOrEmpty(contacted) && id != null) {
      // do your logic.
   }
}

注:id asを取るnullable場合、URL から値を取得する必要はありません。この引数に何も渡さない場合は null になります。

これが役立つことを願っています。

于 2013-08-21T16:57:45.880 に答える
1

GET 要求に応答できる同じ名前のアクションを複数持つことはできません。アクションに他のパラメーターを追加し、存在するパラメーターを確認して何をするかを決定することもできます。

[HttpGet]
public ActionResult FollowUp(string contacted, int? id, string pid) {}
于 2013-08-21T16:57:27.283 に答える