Ano*_*ous 5 asp.net asp.net-mvc
我是ASP.NET MVC的新手.我阅读了专业的ASP.NET MVC 3,它有两个页面讨论环境路由值,但我不明白它是如何工作的.我在谷歌搜索"asp.net mvc环境路线值",但仍未找到任何解释它是什么或如何工作的文章或网站.
我想知道ASP.NET MVC中的"环境路由值"是什么?这个怎么运作?
环境路由值与当前路由出站处理不需要的所有值相关.
以此路线定义为例:
routes.MapRoute(
"Complex",
"{securityArea}/{permission}/{action}/{id}",
new { controller = "Administration", action = "List", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
用户执行某些管理,因此他当前使用的是第一个路由定义所服务的URL:
/users/change/apply/45
Run Code Online (Sandbox Code Playgroud)他在此网址上编辑了某些表单并将数据发回.
现在,如果我们看一下#4中的URL生成.怎么了?
它们也会被添加到URL中:
/Home/Index/?securityArea=Users&permission=Change
Run Code Online (Sandbox Code Playgroud)
我们不希望这样.
这就是为什么他们被称为环境因为他们只是*挂在请求中的孤儿.这是我对环境路线值的解释.希望以一种可以理解的方式解释.
我还写了一篇关于在我的一篇博文中删除这些环境值的文章,其中我提供了一个自定义路由类来执行此删除操作.
您链接的书中的环境路由值也指出站路由处理,但它将环境值称为我们不需要为出站路由处理提供的值,因为它们将取自当前值(即控制器和操作可能如下)很好的环境值).
虽然书中没有谈到我在上面的答案中概述的环境路线值的问题.所有定义的路由值都可以是环境值,当我们没有意识到路由的工作原理时,它们可能会导致问题