我正在调用我创建的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
我有什么建议可以调用它并允许在该数据中传递“/”吗?
答案 0 :(得分:1)
我认为您可以在路线属性中使用wildcard path:
' Added an asterisk here------------------------> v
<Route("/SystemFunctions/DefaultLanguage/{NationalityCode*}", "GET")>
这应该允许您的NationalityCode
属性获取带斜杠的值。