加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

什么是ASP.NET MVC中的环境路由值及其工作原理?

发布时间:2020-12-16 09:23:53 所属栏目:asp.Net 来源:网络整理
导读:我是ASP.NET MVC的新手.我读了 Professional ASP.NET MVC 3,它有两页谈论环境路线值,但我不明白它是如何工作的.我在谷歌搜索“asp.net mvc环境路线值”,但仍未找到任何解释它是什么或如何工作的文章或网站. 我想知道ASP.NET MVC中的“环境路由值”是什么?这
我是ASP.NET MVC的新手.我读了 Professional 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 }
);

在这种情况下,环境路线值的场景将是:

>用户执行一些管理,因此他当前在第一个路由定义服务的URL上:

/users/change/apply/45

>他在此URL上编辑了某些表单并将数据发回.
>当他点击服务器(执行一些控制器操作)时,所有这些路由值都会被填充,并且现在是上下文路由值的一部分.
> Controller完成它必须做的事情,最后我们希望它重定向到应用程序的非管理部分,因此点击第二个默认路由.

现在,如果我们看一下#4中的URL生成.怎么了?

>请求期间定义的路由值包括:

> controller =“管理”
> action =“申请”
> securityArea =“用户”
> permission =“更改”
> id = 45

>只需要前两个即可生成第二个默认路由的URL
>其余环境路线值会发生什么变化?
>他们也被添加到URL:

/Home/Index/?securityArea=Users&permission=Change

我们不希望这样.

这就是为什么他们被称为环境因为他们只是*挂在请求中的孤儿.这是我对环境路线值的解释.希望以一种可以理解的方式解释.

我还写了一篇关于在一个of my blog posts中删除这些环境值的文章,其中我提供了一个自定义路由类来执行此删除操作.

如第232页所述

您链接的书中的环境路由值也指出站路由处理,但它将环境值称为我们不需要为出站路由处理提供的值,因为它们将从当前值中获取(即控制器和操作可能为很好的环境值).

虽然书中没有谈到我在上面的答案中概述的环境路线值的问题.所有定义的路由值都可以是环境值,当我们没有意识到路由的工作原理时,它们可能会导致问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读