[英]ASP.NET MVC Routing System
我试图了解 MVC 路由是如何工作的,但似乎我在此过程中迷路了。
我在Global.asax
文件中定义了两条路由如下
routes.MapRoute("Public", "Public/{controller}/{action}", new { controller = "Home", action = "Index" });
routes.MapRoute("ShopSchema2", "Shop/OldAction", new { controller = "Home", action = "Index" });
我的问题——这可能很简单:
"~/Public/Account/Register"
,它会通过Register
操作转到Account
控制器。 为什么第一段(公共)不作为控制器的值?"~/Shop/OldAction"
,它会通过Index
操作转到Home
控制器。 请描述。{
和}
中提到的任何内容作为段变量。您已将“公共”作为固定短语放在下面的代码中:
Public/{controller}/{action}"
通常那里没有“公共”。 如果你想让公共动态,你必须把它放在 {public} 之类的括号中,并在以下代码中为“公共”添加功能:
{ controller = "Home", action = "Index" });
{ controller = "Home", action = "Index", public="None" });
在第二行中,您将一个名为“Public”的变量传递给 actionresult,默认情况下它带有一个字符串值“None”,并且可以根据您替换 public 的内容进行更改。
再说一次,在控制器变量之前放置任何变量并不常见。
{ } 中的任何内容都作为一个变量,它采用默认值,可以根据用户输入的地址进行更改。
routes.MapRoute("ShopSchema2", "Shop/OldAction", new { controller = "Home", action = "Index" });
上面的代码默认转到主页/索引。 你没有在那里设置任何变量。
我希望这能回答所有 3 个问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.