C# 1.路由参数中的正斜杠
我有一个GET端点,它将用户名作为参数。以下是行动C# 1.路由参数中的正斜杠,c#,asp.net-mvc-4,routing,url-parameters,C#,Asp.net Mvc 4,Routing,Url Parameters,我有一个GET端点,它将用户名作为参数。以下是行动 [Route("user/{userName}")] public User GetUserByName([FromUri] string userName) { // logic here } 这就是我提出请求的方式 var restClient = new RestClient("uri"); var request = new RestRequest("user/" + userName); var response = restC
[Route("user/{userName}")]
public User GetUserByName([FromUri] string userName)
{
// logic here
}
这就是我提出请求的方式
var restClient = new RestClient("uri");
var request = new RestRequest("user/" + userName);
var response = restClient.Execute(request);
它在所有情况下都能正常工作,直到出现一个名称包含正斜杠的用户。
例如:阿克巴/巴杜沙
然后请求看起来像user/Akbar/Badhusha
这导致请求返回Not Fount错误
我尝试使用AddQueryParameter方法添加参数。所有返回的未找到错误
有什么方法可以让它工作吗?尝试从参数中删除[FromUri],如下所示
[Route("user")]
public User GetUserByName(string userName)
{
// logic here
}
这个请求可能看起来像
用户?用户名=Akbar/Badhush
如果您以querystring的形式发送,是否有效?e、 g.
user?userName=Akbar/Badhusha
@MKR,它没有。如果从参数中删除[FromUri]
属性,则需要对userName
进行URL编码。需要允许双重转义并手动解码。看见