Web API 2中的多个参数 [英] Multiple parameters in a web api 2 get

查看:259
本文介绍了Web API 2中的多个参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想制作一个通过4个参数传递的网络api.

I want to make a web api that is passed 4 parameters.

这是我的路线:

        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/GetId?email=user@domain.com&firstname=joe&lastname=shmoe&source=123

我收到404错误.

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

If I set each parameter to optional in the route config, and set up each argument with a default value it gets called. However, each argument gets the default value and not the passed value.

我感觉自己很亲密,我想念什么?

I feel like I am close, what am I missing?

推荐答案

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

Ensure you have default api route setting in WebApiConfig.cs file.

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/GetId?email=user@domain.com&firstname=joe&lastname=shmoe&source=123

注意:我用localhost替换了法域,它可以工作...(localhost/api/Contacts/GetId?email=user@domain.com& first = joe& lastname = shmoe& source = 123)

Note : I replaced fakedomain with localhost and it works... (localhost/api/Contacts/GetId?email=user@domain.com&firstname=joe&lastname=shmoe&source=123)

这篇关于Web API 2中的多个参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆