关于MVC路线的困惑

时间:2014-12-15 18:56:58

标签: asp.net-mvc asp.net-mvc-routing

我有一个关于MVC的快速问题,并从JavaScript调用方法。

我需要创建一个以下列方式工作的控制器:

/Marvel/Spiderman

{Spiderman}将成为我需要传递的漫画的名称。

根据我对MVC的理解(很少),其路线应该看起来像{ controller = "Marvel", id = UrlParameter.Required }

控制器:

MarvelController: Controller
{
    // this is where I'm confused
}

我不能在这里调用一个动作,因为路线没有指示一个动作/ {controller} / {id},或者我在考虑这个错误?

1 个答案:

答案 0 :(得分:2)

您应该在路由中“硬编码”您的操作名称,以便路由器知道要调用的操作。您可以使用以下路线执行此操作:

routes.MapRoute(
     name: "ComicRoute",
     url: "Marvel/{id}",
     defaults: new { controller = "Marvel", action = "Index", id = UrlParameter.Optional }
);

你的控制器看起来像这样:

MarvelController: Controller
{
    public ActionResult Index(string id) {....}
}