Ily*_*dik 5 c# asp.net-core-mvc asp.net-core asp.net-core-routing
我的项目中有一条简单的路线:
routes.MapRoute(
name: "api",
template: "api/{controller}/{action}");
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我有两个动作:
[HttpGet]
public string Get(string value)
{
return value;
}
[HttpGet]
public string Get(int id)
{
return id.ToString();
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试做一个像api/controller/get?id=1
它不起作用的URL ,因为框架无法区分两个动作.据我所知,它在普通的web api中运行得非常好,因为很明显这个url只根据它的参数匹配其中一个动作.我做错了什么或新的MVC6不支持?
是我做错了什么还是新的 MVC6 不支持它?
MVC 操作选择器在选择操作期间不考虑操作的参数。因此,不能让两个操作对应一个路由模板。除了例如操作具有不同的操作约束(HttpPost、HttpGet)。
理论上,基于参数的某些操作之间的选择逻辑必须进入 SelectBestActions 方法,但它什么也不做
归档时间: |
|
查看次数: |
3410 次 |
最近记录: |