【发布时间】:2018-02-12 12:24:52
【问题描述】:
我有这样的控制器代码:
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
[HttpGet("[action]")]
public IEnumerable<string> Foo()
{
return new string[] { "value1", "value2" };
}
}
我想找到这些方法的 URL,使用反射或类似 nameof 的方法。
如果它可以从应用程序的任何地方调用,或者至少在中间件中能够通过操作过滤请求,那就太好了。
我希望看到的结果是:
- 对于
GetUrl(ValuesController.Get),我会得到api/Values - 对于
GetUrl(ValuesController.Foo),我会得到api/Values/Foo
我不需要完全这种形式的这些 URL,它们可能在前面有 / 或没有等等。但我想知道这是否有可能,无论是在运行时还是在编译时。
【问题讨论】:
标签: c# asp.net-mvc asp.net-core asp.net-core-mvc