0

我需要能夠處理REST調用中的特殊字符。具體爲./個字符。例如我有GET路線/api/division/{someDivision}。現在,使用參數/api/division/West Canada/調用此路由,我得到一個回報,一切都按預期工作。不過,我需要能夠支持其他有「美國西南部」之稱的業務部門。和「北美/南美」。通過我的路由傳遞這些參數通過api返回一個404,因爲我認爲,http處理程序認爲./字符使它認爲我指的是另一個域或目錄。無論如何要解決這個問題,所以我可以傳遞所需的參數?允許Web API參數中的特殊字符

路線:

[HttpGet] 
[Route("{division}/information")] 
public IHttpActionResult DivisionInfo(string division) 
{ 
    ...omitted for brevity 

回答

0

你可以嘗試設置你的路線像這樣:

[HttpGet] 
[Route("/api/information")] 
public IHttpActionResult DivisionInfo(string division) 

然後就可以調用GET http://website.com/api/information?division=text.with/special./characters

+0

有沒有辦法做到這一點,並保持通話REST風格的? – KidBatman 2015-03-03 18:19:29

+0

對於爲您的搜索字符串設置查詢參數,沒有任何非RESTful特性。 本文提供了一個路線示例:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries – MattHughesATL 2015-03-05 15:59:07

0

嘗試帕拉姆之前添加[FromUri]

Route("api/Person/{ID}/[FromUri]{UserName}")]