模棱两可的请求 mvc 3.

本文关键字:mvc 请求 模棱两可 | 更新日期: 2023-09-27 18:35:15

我想知道为什么 ASP.NET MVC 3 给我一个例外

控制器类型"EditController"上的当前操作"预览配置文件"请求在以下操作方法之间不明确:System.Web.Mvc.ActionResult PreviewProfile() 在类型 OSKus.Controllers.EditControllerSystem.Web.Mvc.ActionResult PreviewProfile(Int32) on type OSKus.Controllers.EditController

[HttpGet]
public ActionResult PreviewProfile()
{
    return View("PreviewProfile", user.GetPerson(User.Identity.Name));
}
[HttpGet]
public ActionResult PreviewProfile(int personId)
{
    if (personId == -1)
        return View("PreviewProfile", user.GetPerson(User.Identity.Name));
    return View("PreviewProfile", user.GetPerson(personId));
}

模棱两可的请求 mvc 3.

即使

使用不同的签名,也不能有两个具有相同名称的 [HttpGet] 操作。

[HttpGet]
public ActionResult PreviewProfile(int? personId)
{
    if (personId.HasValue)
        return View("PreviewProfile", user.GetPerson(personId));
    return View("PreviewProfile", user.GetPerson(User.Identity.Name));
}

因为它无法在定义的路由中区分它们。

但是,为什么不将签名更改为:

public ActionResult PreviewProfile(int? personId)
{
    ìf(personId.HasValue)
    {
        // id supplied, do stuff and return view
    }
    // No id supplied
    // return default view
}