Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api wep api路由有问题_Asp.net Web Api_Asp.net Mvc Routing - Fatal编程技术网

Asp.net web api wep api路由有问题

Asp.net web api wep api路由有问题,asp.net-web-api,asp.net-mvc-routing,Asp.net Web Api,Asp.net Mvc Routing,我的注册路由映射如下所示: config.Routes.MapHttpRoute( name: "WithActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = System.Web.Http.RouteParameter.Optional } ); config.Routes.MapHttpRoute( name: "DefaultApi",

我的注册路由映射如下所示:

config.Routes.MapHttpRoute(
    name: "WithActionApi",
    routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
);
// [Route("???????????")]
[HttpGet]
public HttpResponseMessage GetPatientProviderData([FromUri]  PatientProviderIncomingDto ppDto)
{
    var response = Request.CreateResponse(HttpStatusCode.OK, _claimDetailService.GetPatientProviderData(ppDto.patientId, ppDto.facilityGroupId, ppDto.claimId));
    return response;
}
控制器如下所示:

config.Routes.MapHttpRoute(
    name: "WithActionApi",
    routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
);
// [Route("???????????")]
[HttpGet]
public HttpResponseMessage GetPatientProviderData([FromUri]  PatientProviderIncomingDto ppDto)
{
    var response = Request.CreateResponse(HttpStatusCode.OK, _claimDetailService.GetPatientProviderData(ppDto.patientId, ppDto.facilityGroupId, ppDto.claimId));
    return response;
}
我正在打一个这样的GET电话:

http://localhost:xxxx/api/claims/GetPatientProviderData?patientId=180&facilityGroupId=9&claimId=21

但是,它没有击中URL。我希望它能够命中URL,并将提供的参数转换为DTO

那么,您是收到http错误,还是只是一个空的“DTO”模型?找不到与请求匹配的http资源。要排除路由的潜在问题,请直接调用api方法以验证它是否按预期工作。由于您没有指出,我假设API方法存在于名为“ClaimsController”的控制器上?ClaimsController的声明是什么样子的?我可以调用只返回字符串的方法。我创建了测试方法来检查这些东西。它起作用了。