我遇到了一个令人困惑的错误,我不太清楚为什么。通常,当您有两个ActionResults时会弹出这种错误,并在其中一个上忘记[HttpPost]
。但正如您所看到的,我有 [HttpPost]
,那么可能导致此问题的原因是什么?
错误:Type 'PersonalWebsite.Controllers.BlogController' already defines a member called 'Search' with the same parameter types Controllers\BlogController.cs
和代码:
//
// GET: /Blog/Search
public virtual ActionResult Search()
{
return RedirectToAction(MVC.Blog.Index());
}
//
// POST: /Blog/Search
[HttpPost]
[ValidateInput(false)]
public virtual ActionResult Search(SearchViewModel model)
{
// irrelevant code snipped
return View(model);
}
此控制器中没有定义其他Search()
方法。这很奇怪。
有什么想法吗?
答案 0 :(得分:2)
您的Search
方法已在另一个partial
中定义。
见这里:https://github.com/Imdsm/PersonalWebsite/blob/master/PersonalWebsite/BlogController.generated.cs
[NonAction]
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public virtual System.Web.Mvc.ActionResult Search()
答案 1 :(得分:2)
您可以通过以下方式为方法创建别名:
[HttpPost]
[ValidateInput(false)]
[ActionName("Search")]
public virtual ActionResult SearchByPost(SearchViewModel model)
{
// irrelevant code snipped
return View(model);
}