允许Web API参数中的特殊字符

时间:2015-02-17 23:56:45

标签: rest asp.net-web-api special-characters asp.net-web-api2 asp.net-web-api-routing

我需要能够在REST来电中处理特殊字符。特别是./个字符。

例如,我有GET路由/api/division/{someDivision}。现在,使用参数/api/division/West Canada/调用此路由,我得到一个返回,一切都按预期工作。但是,我需要能够支持其他名称为“Southwest U.S.”的业务部门。和“北/南美洲”。通过我的路由传递这些参数通过api返回404,因为我认为,http处理程序认为./字符使它认为我指的是另一个域或目录。有没有办法解决这个问题,所以我可以传递所需的参数?

路线:

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

2 个答案:

答案 0 :(得分:0)

您可以尝试像这样设置路线:

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

然后你可以拨打GET http://website.com/api/information?division=text.with/special./characters

答案 1 :(得分:0)

尝试在参数之前添加[FromUri]

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