我有一条如下路线
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
但我想知道何时输入mysite.com/Team/Details,
它转到Team控制器的详细信息操作。
它是如何开心的?我没有为Team
添加任何路线答案 0 :(得分:2)
该路线表示它是“默认”路线,由MVC项目模板添加。
它使用模板格式,其中关键字是大括号。
{controller} =导航到的控制器。
{action} =正在访问的操作方法
{id} =一个id参数,您的网址可能存在也可能不存在(因此id = UrlParameter.Optional
)
因此,它会看到网址Team/Details
并且知道按照惯例,Team
是您的控制者,Details
是您的行动。
答案 1 :(得分:1)
it {controller} / {action} / {id}是实现它的原因,所以它将每个url解释为site / controller / action / id
这一行 new {controller =“Home”,action =“Index”,id = UrlParameter.Optional}
表示没有指定的控制器变为home,没有指定的操作变为索引,也没有指定的id =“”。
答案 2 :(得分:0)
该代码中的注释回答了您的问题,特别是“参数默认值”的注释。这些只是默认值,重要的部分是“{controller} / {action} / {id}”部分。基本上,如果您只是在没有明确输入mysite.com/Home/Index的情况下访问mysite.com,该规则将填充控制器的“Home”和操作的“Index”。否则,如果您指定mysite.com/Team/Details,则会为控制器填写“Team”,为操作填写“Details”。