Javascript 查询字符串未命中MVC控制器方法的URL

Javascript 查询字符串未命中MVC控制器方法的URL,javascript,asp.net-web-api,query-string,Javascript,Asp.net Web Api,Query String,我在控制器中有两种方法。一个接受参数,另一个不接受 [Produces("application/json")] [Route("api/[controller]")] public class ClientController : Controller { [HttpGet("[action]/{id}")] public ObjectResult GetChildNodeObjects(string id) { //does stuff }

我在控制器中有两种方法。一个接受参数,另一个不接受

[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 


您应该在url映射中定义如下内容

routes.MapRoute(
    "myrouting",
    "mycontroller/myaction/",
    new { }
    );

您需要属性路由-在定义路由的地方,可以使用“routes.mapmvcattributures();”启用属性路由您是否有任何自定义路线图或MVC默认路线图?
routes.MapRoute(
    "myrouting",
    "mycontroller/myaction/",
    new { }
    );