在请求数据中使用反斜杠调用ServiceStack

时间:2013-08-17 19:27:05

标签: servicestack

我正在调用我创建的VB.NET中的服务堆栈api - 它基本上会查找当你传递一个人的国籍时所说的默认语言。

Dim response As BindingList(Of
Symphony_SystemFunctionsDefaultLanguageResponse)

Dim client As New JsonServiceClient(BASEURI)
    response = client.[Get](New Symphony_SystemFunctionsDefaultLanguage() With {.NationalityCode = strNationality}) 

strNationality是一个名为“ME / Kuw”的数据库的代码(科威特将返回阿拉伯语“

任何没有“/”或“\”的代码都会正确返回,所以我知道服务和调用工作但是如果我使用代码即。 “ME / Kuw”我找不到服务 - 它解释/作为路线, 我已经尝试将字符串URLencoded,但它的问题相同。

这是我的服务和响应代码 - 只要.NationalityCode中没有“/”就可以正常工作。

 <Route("/SystemFunctions/DefaultLanguage/{NationalityCode}", "GET")>
 Public Class Symphony_SystemFunctionsDefaultLanguage
     Implements IReturn(Of BindingList(Of ymphony_SystemFunctionsDefaultLanguageResponse))

Private mvarNationalityCode As String
     Public Property NationalityCode() As String
         Get

             NationalityCode = mvarNationalityCode

         End Get
         Set(ByVal Value As String)

             mvarNationalityCode = Value

         End Set
     End Property 
End Class


 Public Class Symphony_SystemFunctionsDefaultLanguageResponse
     Private mvarDefaultLanguage As String

     Public Property DefaultLanguage() As String
         Get

             DefaultLanguage = mvarDefaultLanguage

         End Get
         Set(ByVal Value As String)

             mvarDefaultLanguage = Value

         End Set
     End Property 
End Class

和我的获取数据的类。

public Class Symphony_SystemFunctionsService
    Inherits Service Public Function [get](request As Symphony_SystemFunctionsDefaultLanguage) As Object

        Using dbcontext As New EntitiesModel1

            Dim sqlQueryString As String = "proc_s_GetDefaultLanguage '" & request.NationalityCode & "'"
            Dim response As IEnumerable(Of Symphony_SystemFunctionsDefaultLanguageResponse) =
 dbcontext.ExecuteQuery(Of
 Symphony_SystemFunctionsDefaultLanguageResponse)(sqlQueryString)

            Return response

        End Using

    End Function 
End Class

我有什么建议可以调用它并允许在该数据中传递“/”吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以在路线属性中使用wildcard path

'        Added an asterisk here------------------------> v
<Route("/SystemFunctions/DefaultLanguage/{NationalityCode*}", "GET")>

这应该允许您的NationalityCode属性获取带斜杠的值。