首页 > 解决方案 > 带有 ASP.NET MVC 属性路由的控制器级别参数

问题描述

有什么方法可以将参数添加到控制器路由属性?

就像是:

[Route("controller/{id}/"]

public class Controller {
   public Controller(string id) { /*..*/ }

   [HttpGet]
   public ActionResult Get() { /*..*/ }
}

标签: asp.net-mvc

解决方案


控制器方法参数上的[FromRoute]属性应该可以满足您的需求。

例子

[Route("api/Test/{testId}")]
public class TestController: ControllerBase 
{
    [HttpGet]
    [Route("echo")]
    public void TestMethod([FromRoute]string testId)
    {
        return testId;
    }

}

另请参阅此 SO以获取更多信息。


推荐阅读