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}")] 
相关问题