Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 1.路由参数中的正斜杠_C#_Asp.net Mvc 4_Routing_Url Parameters - Fatal编程技术网

C# 1.路由参数中的正斜杠

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

我有一个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 = restClient.Execute(request);
它在所有情况下都能正常工作,直到出现一个名称包含正斜杠的用户。 例如:阿克巴/巴杜沙 然后请求看起来像user/Akbar/Badhusha

这导致请求返回Not Fount错误

我尝试使用AddQueryParameter方法添加参数。所有返回的未找到错误

  • 我还尝试了HttpUtility.UrlEncode
  • 还尝试用%2f替换/替换
  • 也尝试过用户?用户名=Akbar/Badhusha
  • 他们都失败了


    有什么方法可以让它工作吗?

    尝试从参数中删除[FromUri],如下所示

    [Route("user")]
    public User GetUserByName(string userName)
    {
      // logic here
    }
    
    这个请求可能看起来像

    用户?用户名=Akbar/Badhush


    如果您以querystring的形式发送,是否有效?e、 g.
    user?userName=Akbar/Badhusha
    @MKR,它没有。如果从参数中删除
    [FromUri]
    属性,则需要对
    userName
    进行URL编码。需要允许双重转义并手动解码。看见