Bri*_*per 58
似乎没有人提到它显示了IIS实际收到的Raw URL,然后才会发生任何操作,例如在IIS重写或文件系统中进行URL重写.
假设您在MVC应用程序中设置了错误页面/错误,并且您将webconfig设置为将错误页面替换为该位置的自定义错误页面.这样当在/ faultypage中收到错误时,用户将获得页面/错误,但浏览器地址栏中的URL仍然会显示www.mysite.com/faultypage - 这是转移或重写.
现在在你的错误控制器上,如果你要看看Request.Url,它会像"www.mysite.com/error"和Request.RawUrl会说(更有用吗?)"/ faultypage"这是用户的实际请求不是当前正在执行的页面.
nai*_*sts 52
来自MSDN:
原始URL定义为域信息后面的URL部分.在URL字符串中
http://www.contoso.com/articles/recent.aspx,原始URL是/articles/recent.aspx.
这意味着,您可以使用rawurl而不必关心调用服务器的地址(例如http://yourserver/,http://yourserver.yourdomain.com/如果您有多个接口).
但是,对象的URL属性HTTPRequest返回一个System.URI对象,该对象还包含服务器名称.
dan*_*ana 16
Request.RawUrl非常类似于Request.Url.PathAndQuery 除外的是Request.Url.PathAndQuery包括默认文档如果使用,而Request.RawUrl没有.根据我的经验,ASP.Net 4.0及更高版本也是如此.
该HttpRequest.RawUrl属性文档描述了属性值:
原始URL定义为URL中域信息之后的一部分。在URL字符串中
http://www.contoso.com/articles/recent.aspx,原始URL为/articles/recent.aspx。原始URL包含查询字符串(如果存在)。
该HttpRequest.Url属性文档描述了属性值:
一个Uri对象,其中包含当前请求的URL。
有关其属性,请参见Uri类文档。
Request.RawUrl返回一个字符串,它是当前网址的域信息之后的所有内容.
例如,for:Request.RawUrl vs. Request.Url
Request.RawUrl将是/ questions/2019735/request-rawurl-vs-request-url
Request.Url返回一个Uri对象,http://msdn.microsoft.com/en-us/library/system.uri_members.aspx