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 { }
);