【发布时间】:2018-02-12 08:14:38
【问题描述】:
我在一个 mvc Api 项目中工作,在使用 [route("api/MyCont/getspecific")] 路由操作时,我意识到 使用一个变量来存储这个控制器的基本路径是个好主意:“api/myCont”,这样我就可以重用这部分路由,也可以使代码的维护更容易。
这是我尝试过的:
public class MyContController : ApiController
{
private readonly string BaseRoute="api/MyCont" ;
[HttpGet]
[Route(BaseRoute+"/GetSpecific")]
public IHttpActionResult GetSpecificItem( string ItemId)
{
/* do something
get the item from a source
*/
return Ok(Item);
}
}
但是当我这样做时,路由中出现错误“非静态字段、方法或roperty BaseRoute需要对象引用”。
我应该怎么做才能修复它? 就良好做法而言,您认为我正在做的事情是个好主意吗?
【问题讨论】:
-
必须是
const(不是readonly) -
注意正常的方法是在控制器上使用
[RoutePrefix("api/MyCont")]。参考Attribute Routing in ASP.NET Web API 2
标签: c# asp.net-mvc routing