1
public ActionResult Index()
{
    Queries q1 = new Queries();
    return View(q1);
}

public ActionResult Index(string id)
{
    Queries q1 = new Queries(id);
    return View(q1);
}

public ActionResult Select(string id)
{
    return RedirectToAction("Index",id);
}

怎么了...

它说:当前对控制器类型“CompanyController”的操作“Index”的请求在以下操作方法之间不明确: System.Web.Mvc.ActionResult Index() on type LookUpForm.Controllers.CompanyController System.Web.Mvc.ActionResult Index (System.String) 类型为 LookUpForm.Controllers.CompanyController

由于 Action Index 一个没有参数,而另一个有一个字符串参数,我认为它必须是有效的。

4

2 回答 2

1

即使它们采用不同的参数,您也不能在同一个控制器上具有相同名称的 2 个操作。消除它们歧义的唯一方法是使用不同的 HTTP 动词:

public ActionResult Index()
{
    Queries q1 = new Queries();
    return View(q1);
}

[HttpPost]
public ActionResult Index(string id)
{
    Queries q1 = new Queries(id);
    return View(q1);
}

或者,如果两个动作都需要使用 GET 动词访问,您将不得不找到不同的名称或编写自定义动作选择器

于 2012-07-05T05:40:10.740 回答
0

只有当它们的 httpmethods 不同时,你才能有动作重载,即 HttpGet 或 HttpPost

于 2012-07-05T05:38:55.743 回答