首页 > 解决方案 > Request.Url.AbsoluteUri 和 Request.UrlReferrer.AbsoluteUri 有时为空

问题描述

Request.Url.AbsoluteUri用来检测请求的 url,但是有些请求没有UrlUrl Referrer

这是代码:

db.Visits.Add(new Visit {
    Url = Request.Url.AbsoluteUri,
    UrlReferrer = Request.UrlReferrer.AbsoluteUri
});

结果 :

保存url的结果

标签: c#asp.net-mvcurl

解决方案


首先,检查 Your Request对象。

您有时可能需要从 URL 获取不同的值。

下面的示例显示了提取 URL 不同部分的不同方法

示例:(示例网址)

http://localhost:6061/MyWebSite/Default2.aspx?QueryStringValue=1

代码

Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);

下面的输出请检查

localhost
localhost:6061
6061
/MyWebSite/Default2.aspx
/MyWebSite
http://localhost:6061/MyWebSite/Default2.aspx?QueryStringValue=1
/MyWebSite/Default2.aspx?QueryStringValue=1

注意:通常上面的代码在 ASP.NET WEB FROM 中工作,如果你想在 MVC 中你需要更改一些基于路由的值。


推荐阅读