URL QueryString 未命中 MVC 控制器方法
URL with QueryString not hitting MVC Controller method
我在控制器中有两个方法。一个接受参数,另一个不接受。
[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
它直接进入另一个控制器方法 - 没有参数的方法。第二种情况不捕获参数我做错了什么?
您添加了斜杠。这个斜杠意味着无参数动作开始。所以只需替换 URL:
http://localhost:xxxx/api/project/GetChildNodeObjects/?id=231a
有
http://localhost:xxxx/api/project/GetChildNodeObjects?id=231a
您应该在 url 映射中定义如下内容
routes.MapRoute(
"myrouting",
"mycontroller/myaction/",
new { }
);
我在控制器中有两个方法。一个接受参数,另一个不接受。
[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
它直接进入另一个控制器方法 - 没有参数的方法。第二种情况不捕获参数我做错了什么?
您添加了斜杠。这个斜杠意味着无参数动作开始。所以只需替换 URL:
http://localhost:xxxx/api/project/GetChildNodeObjects/?id=231a
有
http://localhost:xxxx/api/project/GetChildNodeObjects?id=231a
您应该在 url 映射中定义如下内容
routes.MapRoute(
"myrouting",
"mycontroller/myaction/",
new { }
);