繁体   English   中英

从http请求到c#字符串解析变量时,保留特殊字符

[英]Preserve special characters when parsing variables from http request to c# string

我正在基于owin和katana的小型应用程序内部处理链接。 因此,应用程序处理HttpGet请求。 当有人打电话时

http:localhost /?document = path / to / my / document / foo.doc

应用程序将打开此文档。

我的问题是:当文档名称包含特殊字符(如“ +”)时,由于变量被解析为字符串,因此我的代码将+号解释为空格。

[HttpGet]
[Route("")]
    public HttpResponseMessage Get(string document = "")
    {
        //open document
    }

那么如何在执行任何代码之前保留特殊字符并且不允许c#字符串转换它们呢?

我尝试使用HttpResponseMessage Get([FromUri]string document = "")

之后,我尝试使用HttpUtility.UrlEncode对文档变量进行编码,但它也会对合法空间进行编码。

同时,我得到了一种解决方法:GET方法内部的this.Request.RequestUri.OriginalString将完整的链接作为字符串给出,而没有任何解释。 剩下的就是通过string.substring操作获取相关的变量。

不过,它想知道是否有人知道更优雅的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM