Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 Web API 1和路由_Asp.net Web Api_Asp.net Web Api Routing - Fatal编程技术网

Asp.net web api Web API 1和路由

Asp.net web api Web API 1和路由,asp.net-web-api,asp.net-web-api-routing,Asp.net Web Api,Asp.net Web Api Routing,我使用WebAPI2创建了一个项目,但后来发现服务器运行的是2003。因此,我现在使用WebAPI1(.NET4)重新创建该项目 我正在将路由放置在App\u Start\WebApiConfig中 config.Routes.MapHttpRoute( name: "ContactApi", routeTemplate: "api/{controller}/{email}/{firstname}/{lastname}/{source}" ); 我使用的url是 http:

我使用WebAPI2创建了一个项目,但后来发现服务器运行的是2003。因此,我现在使用WebAPI1(.NET4)重新创建该项目

我正在将路由放置在App\u Start\WebApiConfig中

 config.Routes.MapHttpRoute(
    name: "ContactApi",
    routeTemplate: "api/{controller}/{email}/{firstname}/{lastname}/{source}"
 );
我使用的url是

http://localhost:64470/api/Contacts/GetId?email=user5@company.com&firstname=joe&lastname=user&source=wer
这在WebAPI2中工作得很好,但我得到以下错误 找不到资源

下面是控制器类的一些部分

 public class ContactsController : ApiController
 public string GetId(string email, string firstname, string lastname, string source)

知道我缺少什么吗?

路由模板要求参数{email}、{firstName}、{lastName}和{source}位于URI路径中。用下面的代码替换您的路线

config.Routes.MapHttpRoute(
    name: "ContactApi",
    routeTemplate: "api/{controller}"
);

并且它应该到达您的GetId方法-查询字符串参数不需要在路由中指定。

要使用您正在使用的url调用操作,您需要具有以下路由:

config.Routes.MapHttpRoute(
    name: "ActionApi",
    routeTemplate: "api/{controller}/{action}"
);
我个人不会这么做。我只会使用默认路线:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);
然后使用以下url调用APi:

http://localhost:64470/api/Contacts?email=user5@company.com&firstname=joe&lastname=user&source=wer

这不适合我。有没有一个工具可以告诉我IIS认为它应该去哪里?