博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译] ASP.NET MVC 6 attribute routing – the [controller] and [action] tokens
阅读量:5227 次
发布时间:2019-06-14

本文共 1131 字,大约阅读时间需要 3 分钟。

原文:

当在Web API 2或者MVC 5 中使用路由属性很容易发生路由和控制器的名字不同步的情况. 这是因为路由通常就是一个字符串, 因此当改变了控制器的名字我们同时也要去修改路由属性.

当时我们通常会忘记修改.

在MVC 6中这个问题得到了改善 – 通过引入 [controller] 和 [action] tokens 到路由属性. 

问题

一个典型Web API项目的控制器代码如下:

 

[Route("api/hello")]public class HelloController : Controller{    [Route]    public string Get()    {        return "hello";    }}

或者:

[Route("api/hello")]public class HelloController : Controller{    [Route("GetHello")]    public string GetHello()    {        return "hello";    }}

在上面的两个例子中 我们通常需要手工去维护Route属性.

MVC6的解决方案

通过使用新的 [controller] token你可以保证你的路由和控制器的名字保持一样. 在下面的例子中, [controller] 始终保持和控制器的名字一样 – 在这个例子中Route的名字是Hello.

[Route("api/[controller]")]public class HelloController : Controller{    [Route]    public string Get()    {        return "hello";    }}

[action] token – 这个应用在aciton上 保持路由名和action的名字一致.

下面的例子中action匹配 /api/hello/GetHello/1 URL.

[Route("api/[controller]")]public class HelloController : Controller{    [Route("[action]/{id:int}")]    public string GetHello(int id)    {        return "hello " + id;    }}

 

 
 

转载于:https://www.cnblogs.com/irocker/p/asp-net-mvc-6-attribute-routing-controller-action-tokens.html

你可能感兴趣的文章
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
IOS Google语音识别更新啦!!!
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
Linux升级内核教程(CentOS7)
查看>>
Lintcode: Partition Array
查看>>
类别的三个作用
查看>>
Maximum Product Subarray
查看>>
[转载] MySQL的四种事务隔离级别
查看>>