0

我必须更改我的控制器来处理 2 个不同的查询字符串,但参数数量相同,所以看起来我不能有 2 个名称和参数数量相同的函数:

错误

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

那么我该怎么做呢?

* String #1 string,int * ?contacted=true&id=7889876

字符串 #2 字符串,字符串 ?contacted=true&pid=AWRE-9876-POKJ-112WQ

电流控制器

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

谢谢!

4

2 回答 2

2

与其创建两个函数,不如创建一个具有三个参数的函数,并相应地使用您的逻辑。

例子:

[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.
   }
}

注意:作为不需要任何值形式的 URL idnullable如果您不向此参数传递任何内容,它将为空。

希望这会有所帮助。

于 2013-08-21T16:57:45.880 回答
1

您不能有多个具有相同名称的操作来响应 GET 请求。您还可以将其他参数添加到您的操作中,并通过检查存在哪些参数来决定您将做什么。

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