Web API 2中的多个参数

缺口

我想制作一个传递4个参数的Web API。

这是我的路线:

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{email}/{firstname}/{lastname}/{source}"
        );

这是方法签名

public string GetId(string email, string firstname, string lastname, string source)

这是主叫网址

http://fakedomain.com/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123

我收到404错误。

如果我在路由配置中将每个参数设置为可选,并使用默认值设置每个参数,则会调用该参数。但是,每个参数都获取默认值,而不是传递的值。

我感觉自己接近了,我想念什么?

迪普·马杜索达南

确保您在WebApiConfig.cs文件中具有默认的api路由设置。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

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

http://fakedomain.com/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123

注意:我用localhost替换了法域,它可以工作...(localhost/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章