Asp.net Web API RouteTemplate,用于将多个参数传递给方法

时间:2014-05-16 21:12:56

标签: rest asp.net-web-api

我正在使用ASP.Net Web API,我需要向控制器中的accions传递不同数量的参数,但我找不到(我是Web API的新手)a特定的方式来指示我的控制器中可能具有的不同方法的路由模板。

目前我有这个模板。

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

我不认为我必须为控制器中的每种不同方法指定一个新模板,是吗?

正如我告诉过你的那样,我对Web API很陌生,而且我还没有找到很多关于这一点的信息,这就是为什么如果你能给我一些信息,我真的会感到沮丧建议或指导。

修改

似乎最好的方法是传递查询字符串中的参数,如下所示:

api/controller/action?parm1=val1&par2=val2&par3=val3  

问题是我不知道如何将它放在路由模板中或如何从查询字符串中检索这些值。

2 个答案:

答案 0 :(得分:0)

看看使用路线属性。

Attribute Routing

答案 1 :(得分:0)

使用基于约定的路由。在这种类型的路由中,您可以定义一个或多个路径模板,这些模板基本上是参数化字符串。当框架收到请求时,它会将URI与路由模板匹配

安装以下nuget包:

"Install-Package Microsoft.AspNet.WebApi.WebHost"

在webapiconfig.cs文件中添加以下代码

config.MapHttpAttributeRoutes();