当前位置:  开发笔记 > 编程语言 > 正文

创建到特定动作的不同路径MVC 6

如何解决《创建到特定动作的不同路径MVC6》经验,为你挑选了2个好方法。



1> Nkosi..:

使用属性路由,您可以在的route属性上使用波浪号(〜)Action来覆盖的默认路由(Controller如果需要):

[Route("api/[controller]")]
public class AccountsController : Controller {

    [HttpPost]
    [Route("~/api/token")] //routes to `/api/token`
    public async Task Token([FromBody]Credentials credentials) {
        ...
    }

    [HttpPost] 
    [Route("users")] // routes to `/api/accounts/users`
    public async Task CreateUser([FromBody] userDto) {
        ...
    }
}



2> B12Toaster..:

对于ASP.NET Core,似乎~不再需要波浪线符号(请参见接受的答案)以覆盖控制器的路由前缀-而是适用以下规则:

应用于/开头的动作的路径模板不会与应用于控制器的路径模板组合在一起。本示例匹配一组类似于默认路由的URL路径。

这是一个例子:

[Route("foo")]
public class FooController : Controller
{
    [Route("bar")] // combined with "foo" to map to route "/foo/bar"
    public IActionResult Bar()
    {
        // ...
    }

    [Route("/hello/world")] // not combined; maps to route "/hello/world"
    public IActionResult HelloWorld()
    {

    }   
}

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有