幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

系列属性路由的设置

  0。前言
  在之前我们介绍了请求通过路由寻找到控制器,以及控制器与视图的数据流转。那么,我们回过头来,再看看路由的一些其他用法。
  1。路由属性(RouteAttribute)
  按照英文的直接翻译,RoutingAttribute的意思是路由属性,但实际上Attribute在微软的官方称呼是特性。嗯,所以个人觉得RouteAttribute应该是特性路由,路由特性。
  嗯,暂且甩开称呼的问题,小伙伴们知道这是一种使用Attribute标记的路由配置方案就行。我们之前了解的路由设置都是通过路由表设置的,而RouteAttribute则是另外一种方案。
  1。1如何设置
  这种方案主要是通过RouteAttribute类来设置的,我们先来看一下这个类是个什么样的吧:
  〔AttributeUsage(AttributeTargets。ClassAttributeTargets。Method,AllowMultipletrue,Inheritedtrue)〕
  publicclassRouteAttribute:Attribute,IRouteTemplateProvider
  {
  publicRouteAttribute(stringtemplate);
  publicstringName{get;set;}
  publicintOrder{get;set;}
  publicstringTemplate{get;}
  }
  AttributeUsage这个特性是用来标注特性的适用范围的,其中AttributeTargets。ClassAttributeTargets。Method表示这个特性是可以设置在类或者方法上的。AllMultiple表示是否允许设置多个,Inherited表示被该特性标注的类其子类是否也自动继承了这个特性。
  那么,我们了解了RouteAttribute的适用范围,继续看这个类,一共有三个属性:
  Name表示这个路由特性的名称
  Order表示启用顺序,值越小,越先被匹配。默认情况下是0
  Template路由解析模板,也就是在《【core系列】2控制器与路由的恩怨情仇》中介绍的路由表的格式串
  介绍了这么多,我们先来试试看,先拿出来之前文章创建的MvcWeb项目,新建一个控制器:
  usingMicrosoft。AspNetCore。Mvc;
  namespaceMvcWeb。Controllers
  {
  publicclassRouteTestController:Controller
  {
  publicIActionResultIndex()
  {
  returnView();
  }
  }
  }
  创建对应视图:
  Viewsamp;gt;RouteTestamp;gt;Index。cshtml
  在Index。cshtml中随便写点内容,然后保存。
  然后,在RouteTestController添加一个Route特性标记:
  〔Route(Route)〕
  publicIActionResultIndex()
  {
  returnView();
  }
  启动项目,访问http:localhost:5006Route后,如果不出意外可以看到跟下图类似的界面:
  那么我们试一试通过路由表设置的路径是否可以访问:
  http:localhost:5006RouteTest
  可以看到提示404,也就是说这个Action无法通过路由表的形式查找到了。
  1。2设置参数
  我们知道所谓的Action其实也是一个方法,而我们通常请求一个网址的时候,网址中也带有一些查询参数。所以,这一节我们就介绍一下路由特性(属性路由)如何设置参数的解析吧。
  1。2。1不做任何操作
  在RouteTestController里添加方法:
  〔Route(routenorest)〕
  publicIActionResultNoRest(stringname)
  {
  ViewBag。Namename;
  returnView();
  }
  创建对应的View:
  lt;h1gt;ViewBag。Namelt;h1gt;
  启动程序,并访问:http:localhost:5006routenorest
  添加?nametest在上一个请求的后面:
  尝试变更name的值,可以发现网页中的值也发生了变化,证明我们可以获取到这个值。
  1。2。2当做请求目录的一部分
  在上一小节中,没有对参数做任何操作,以查询参数的形式传递。在这一篇,我们可以把参数设置为请求的一部分,像目录那样,修改上一节示例代码为:
  〔Route(routenorest{name})〕
  publicIActionResultNoRest(stringname)
  {
  ViewBag。Namename;
  returnView();
  }
  请求方式:
  http:localhost:5006routenorest1232
  修改连接中的1232内容,然后刷新页面,就能发现页面中的值也发生了变化
  1。2。3给参数一个默认值
  之前的设置里我们都默认参数由请求URL获取,那么在这里我们介绍一下给参数一个值:
  〔Route(routenorest{namedemo})〕
  publicIActionResultNoRest(stringname)
  {
  ViewBag。Namename;
  returnView();
  }
  访问连接:
  http:localhost:5006routenorest
  可以看见:
  设置为可空,也就是参数可以不传:
  〔Route(routenorest{name?})〕
  publicIActionResultNoRest(stringname)
  {
  ViewBag。Namename;
  returnView();
  }
  访问连接:
  http:localhost:5006routenorest
  可以看到页面没有任何显示:
  正常情况下,如果不对参数设置可空而且参数被我们当做目录的一部分时,不给值是会提示404。
  1。3路由约束
  2。路由统一前缀
  在第一节中,我们介绍了如何使用RouteAttribute为控制器里的方法标记路由信息。有时候会出现这样的一个问题,一个控制器方法里可能会出现多个方法(Action)。通常情况下,我们要求一个控制器处理的请求应当有一个统一的前缀(或者称之为URL目录)。
  那么,这种情况我们仍然继续使用RouteAttribute,不过与之前不同的是,这次直接在控制器类上标记:
  〔Route(Route)〕
  publicclassRouteCtrTestController:Controller
  {
  }
  这时候,在方法上如果添加了RouteAttribute,设置的路由信息如果不是以开始,则会将该Action的路由配置加到Controller后面。如果是以开始,则表示该路由是根路由。
  如果没有设置RouteAttribute,则表示当前方法是处理控制器配置的路由的方法。
  如果一个控制器里出现多个未设置RouteAttribute,则会出错。
  示例代码如下:
  〔Route(Route)〕
  publicclassRouteCtrTestController:Controller
  {
  publicinttemp{get;set;}
  publicIActionResultIndex(inttemp)
  {
  returnContent(你好{temp});
  }
  〔Route(Demo)〕
  publicIActionResultDemo()
  {
  returnContent(你好Demo);
  }
  }
  2。总结
  今天的内容比较短,这里介绍了一些路由的另一种用法,小伙伴们对此有个了解就可以了。下一篇将会到视图,开始准备带领大家做一个小项目啦。
  求关注,求点赞,求转发有啥可以评论哟

司马懿夺曹魏的权当时人为何纷纷叫好公元249年,高平陵之变。从正月初六到正月初十,司马懿只用了五天就把曹魏事实上的最高统治者曹爽给办了。在之后的几个月,有五千多人因受到曹爽谋反案的牵连而命丧黄泉。顷……这种杯子喝水很危险易致癌中毒1、一次性纸杯或暗藏潜在致癌物一次性纸杯只是看起来卫生、方便,其实产品合格率无法判断,是否干净、卫生,用肉眼也无法辨识。从环保的角度来讲,还是应该尽可能少用一次性纸杯。有……公共汽车造句用公共汽车造句大全61、最通常的区域网络地志学是公共汽车、戒指和星。62、此外,如果你坐公共汽车较多,那么你应该试试你以前从未做过的提前几站下车。63、从工厂开出的早班公共汽车可使职……多讲暖心情话能够激起女人性欲望吗多讲暖心情话能够激起女人性欲望吗查克和戴娜完婚8年了,他对怎样表述对妻子的爱觉得刁难和腼腆,有一天晚上,我鼓起勇气讲出了我的情感,一种我爱她,只能她一件事是最关键的觉得。……浅析企业后台的数据表格页面设计本文作者主要是对企业后台的数据表格页面作一个简单的阶段性总结,enjoy近半年的工作中经常接触到后台页面的设计,企业后台数据的展示通常都是由大量的表格以及表单组成的,初接……沙漠化的原因及危害土地沙漠化的成因主要包括气候因素和人为因素1)气候因素,赤道地区的上升气流在高空向两极方向流动,由于地球旋转偏向力的影响,在南北纬30附近,大部分空气不再前进,而在高空积……绩效管理制度考核制定的几个原则在企业的发展中绩效考核是非常重要的一部分。企业员工工作效率低,员工上班的积极性不高,工作没有显著成效,企业管理层办事效率差,工作懒散等等现象的表明企业需要绩效考核的实施,缺乏绩……快乐其实很简单假期里,和爸爸妈妈一起出门旅游时,我很快乐;春节里,收到许多新年礼物时,我很快乐;和好朋友一起玩耍,和家人看一次电影,得到期盼已久的玩具,这些都让我体验过快乐的滋味。可一次公交……戒烟造句用戒烟造句大全151戒烟有利于冠状动脉心脏病病人的恢复与健康。152研究结果显示,与已婚同类人相比,离异男子吸烟的可能性增加,而再婚者则可能戒烟。153如果你是一名孕妇,患有癌症……我们可以从危机史中学到什么在资金网络如此繁杂的现代金融体系中,尽早行动是理性决策,因为等到漏洞百出,想堵都堵不上了。新冠肺炎疫情叠加石油价格战引发全球资本市场剧烈震荡。道琼斯指数最高下跌35,速度……适合女生提高内涵的书推荐导语:很多女生想要读一些书来提升自己,提高自己的内涵和修养,下面励志故事网小编为大家整理10本适合女生提高内涵的书,供参考!1、《杀死一只知更鸟》如果我将来有子女,……过敏性感冒咳嗽应该怎么治疗过敏性咳嗽多见于有过敏性体质的小儿,如曾患过婴儿湿疹、过敏性鼻炎或直系亲属中有过敏性疾病,如过敏性鼻炎、慢性荨麻疹、过敏性哮喘等。由于该病患儿呼吸道持续存在变态反应性的炎症,支……
有人用过瓷肌吗?瓷肌的护肤品怎么样?瓷肌是一个韩国护肤品品牌,很多人听说瓷肌产品可以去痘痘,但却因为不熟悉这个品牌而不敢去用,今天小编就为你们解答瓷肌产品到底好不好用。有人用过瓷肌吗以下摘自网友使用瓷肌的体……水心六款韩式马尾辫打造阳光青春甜美风这款甜美的时尚中长发梨花烫发造型,在时尚的扎发马尾辫辫子设计下,更加气质时尚,妹纸的清爽的露额发型和大卷发,更加抢眼。校园青青的一款个性高马尾辫子造型,简单的拉高妹纸的整……LAMER洁面泡沫为什么泡沫不多?要注意使用手法LA,MER海蓝之谜璀璨净透洁面泡沫,清洁保湿洗面奶,温和滋养,明星洁面,泡沫细腻,洁净清爽不紧绷,下面5号网小编带大家来看一下LAMER洁面泡沫为什么泡沫不多?要注意使用手法……资生堂可悠然沐浴露怎么样?清洁力很强每天都在奔波工作的人会心神俱疲,尤其是上班一整天之后,疲惫的身体需要一点清爽。只需要一款沐浴露就够了。今天要带来的产品是可悠然碧野悠悠美肌沐浴露,一起来看一下吧!资生堂可悠然沐……雪花秀闪理眼霜适合年龄雪花秀闪理眼霜适合肤质雪花秀闪理眼霜能够抹平对岁月的痕迹,有着很不错的口碑。今天5号网小编就要为大家介绍一下,雪花秀闪理眼霜适合什么年龄?雪花秀闪理眼霜适合什么肤质?雪花秀闪理眼霜适合年龄闪理……厨房用什么地漏一说到地漏,大家首先想到了是卫生间,因为那里是用水最多的地方,但是厨房需要安装地漏吗?厨防用什么地漏好呢?影响地漏排水通畅与否,主要是由地面的坡度和地漏本身的安装效果决定……痢疾的症状病因与预防痢疾的症状病因与预防有哪些?菌痢是细菌性痢疾的简称,是有痢疾杆菌引起的肠道传染病。菌痢一年四季都可以发生,但大多发生在夏季,是通过患者或带菌者的粪便污染了水,食物和手而传播,也……怎么区分真假mistine草莓变色唇膏?mistine草莓变唇膏是我们一年四季都会使用的护肤品,mistine草莓变色唇膏既能滋润我们的双唇,还能增强我们的气色,那么怎么区分真假mistine草莓变色唇膏?mistine草莓变色唇膏主要……vc精华液怎么用维c要避手机和灯光吗精华的浓度一般都很高,所以护肤效果非常明显,是大家日常护肤必不可少的一样护肤品,vc精华液一直备受大家的喜爱,很多人说vc精华液会感光。vc精华液怎么用原则1、先涂黏度低……如何做好淡旺季转换的衔接接触淘宝多年,近年来的变化就是竞争更加激烈,节奏更加快速;唯一不变的,就是不断的在变化。每一年甚至每个月每一天都会有无数新鲜的事物被我们追崇,行业的趋势始终驱使着我们商家不断的……小蜜蜂口红好用吗?小蜜蜂口红试色滋润,显色度高,持久度也不错,520这个颜色适合的人挺多,学生党上班族都可以用的,总体来说性价比很高的口红。小蜜蜂口红502色号选的520丝绒亮红色,外包装好看,有细节感……repacell瑞铂希适合什么年龄?瑞铂希适合什么肤质repacell瑞铂希,关于这个品牌很多人还不是很了解,品牌来自德国,意味着把最好的肌肤给你,产品就是从诺贝尔的研究成果中获取的灵感,那么,瑞铂希适合什么年龄和肤质?repac……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网