在web api 2属性路由中指定多个方法参数

时间:2014-04-30 10:10:14

标签: vb.net asp.net-web-api2

我正在将我的一些服务转换为Web API2,并且我有一些函数需要2或3个参数。这些路由属性是如何构建的?

当我在javascript中从旧服务调用该函数时

data: { "symboltype": symboltype, "symbol": symb, "requestDate": dDate}

我尝试了以下路由属性以及其他变体,这些变量无法正常工作

    <HttpGet()> _
    <Route("getsinglerangeprojection/{symboltype:int,symbol,requestdate}")> _
    Public Function GetSingleRangeProjection(ByVal symboltype As Integer,
                                             ByVal symbol As String,
                                             ByVal requestDate As String) As ProjectedRange
        ...code here
    End Function

2 个答案:

答案 0 :(得分:2)

答案是它们都用斜杠分隔,如下所示

 <HttpGet()> _
 <Route("getsinglerangeprojection/symboltype/{symboltype:int}/symbol/{symbol}/requestdate/{requestDate:datetime}")> _
 Public Function GetSingleRangeProjection(ByVal symboltype As Integer,
                                         ByVal symbol As String,
                                         ByVal requestDate As String) As ProjectedRange
    ...code here
 End Function

答案 1 :(得分:0)

您应该创建一个模型来代表您的数据

public class MyData
    {
        public string symboltype { get; set; }

        public string symbol { get; set; }

        public DateTime requestData { get; set; }
    }

并更改您的方法以使用模型或 JObject 作为参数。

最后,将整个json对象发布为字符串

数据:JSON.stringify({&#34; symboltype&#34 ;: symboltype,&#34; symbol&#34;:symb,&#34; requestDate&#34;:dDate});

希望得到这个帮助。