已定义名为';搜索';具有相同的参数类型

本文关键字:类型 参数 搜索 定义 | 更新日期: 2023-09-27 18:19:52

我遇到了一个令人困惑的错误,我不太清楚为什么。通常,当您有两个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()方法。这很奇怪。

有什么想法吗?

已定义名为';搜索';具有相同的参数类型

您的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()

您可以通过以下方式为方法创建别名:

    [HttpPost]
    [ValidateInput(false)]
    [ActionName("Search")]
    public virtual ActionResult SearchByPost(SearchViewModel model)
    {
        // irrelevant code snipped
        return View(model);
    }