1

我有家庭控制器。我的家庭控制器有两种索引方法,一种无参数,一种有参数。它像是

    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";
        return View("index");
    }

    public ActionResult Index(int a)
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC! and Your Age is " + a;
        return View();
    }

我在 global.asax 中只定义了两个路由条目,例如

            routes.MapRoute(
                "Default1", // Route name
                "{Home}/{ID}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

            routes.MapRoute(
                "Default", // Route name
                "{controller}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

我希望当我输入像http://localhost:7221http://localhost:7221/home这样的 url 时,应该触发没有家庭控制器参数的 index() 方法并且

当我键入http://localhost:7221/home/77时,应该触发带有家庭控制器参数的 index(int a) 方法。但我收到错误,为什么我输入了我指定的两种 url。错误消息是控制器类型“HomeController”上的操作“索引”的当前请求在以下操作方法之间不明确: System.Web.Mvc.ActionResult Index() on type BeginnerMVC.Controllers.HomeController System.Web.Mvc.ActionResult BeginnerMVC.Controllers.HomeController 类型上的索引(Int32)

我无法捕捉到错误。我的路由代码有什么问题。请帮忙。谢谢

4

1 回答 1

1

您不能将方法重载与 MVC 中的操作一起使用。如果你详细说明你想要达到的目标,你会得到关于如何做到这一点的建议。

于 2012-08-06T05:54:43.177 回答