我在控制器中有两种方法。一个接受参数,另一个不接受。
[Produces("application/json")]
[Route("api/[controller]")]
public class ClientController : Controller
{
[HttpGet("[action]/{id}")]
public ObjectResult GetChildNodeObjects(string id)
{
//does stuff
}
[HttpGet("[action]")]
public ObjectResult GetChildNodeObjects()
{
//does other stuff
}
}
现在的问题是第一个,那个接受参数。
当我用http://localhost:xxxx/api/project/GetChildNodeObjects/231a
击中它时,它将很好地拾取参数。但是,由于我得到这样的URL:http://localhost:xxxx/api/project/GetChildNodeObjects/?id=231a
,因此它直接进入另一个控制器方法-一个没有参数的方法。在第二种情况下无法捕获参数,这是我做错了什么?
答案 0 :(得分:1)
您已包含一个斜线。此斜杠表示无参数操作开始。因此只需替换URL:
http://localhost:xxxx/api/project/GetChildNodeObjects/?id=231a
使用
http://localhost:xxxx/api/project/GetChildNodeObjects?id=231a
答案 1 :(得分:0)
您应该在网址映射中定义如下内容
routes.MapRoute(
"myrouting",
"mycontroller/myaction/",
new { }
);