我有一个关于MVC的快速问题,并从JavaScript调用方法。
我需要创建一个以下列方式工作的控制器:
/Marvel/Spiderman
{Spiderman}
将成为我需要传递的漫画的名称。
根据我对MVC的理解(很少),其路线应该看起来像{ controller = "Marvel", id = UrlParameter.Required }
控制器:
MarvelController: Controller
{
// this is where I'm confused
}
我不能在这里调用一个动作,因为路线没有指示一个动作/ {controller} / {id},或者我在考虑这个错误?
答案 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) {....}
}