繁体   English   中英

如何从C#App_Code类中获取当前页面的URL?

[英]How can I get the URL of the current page from within a C# App_Code class?

我有一个日志类,它记录了一些东西。 我想添加自动使用消息记录当前页面的功能。

有没有办法获得我正在寻找的信息?

谢谢,

在您的类中,您可以使用HttpContext.Current属性(在System.Web.dll中)。 从那里,您可以创建一系列属性:

底层对象是一个Page对象,因此如果将其强制转换为该对象,则使用通常在Page对象中使用的任何对象,例如Request属性。

它很脆弱且难以测试,但您可以使用System.Web.HttpContext.Current ,它将为您提供一个Request属性,而该属性又具有RawUrl属性。

public static class MyClass
{
    public static string GetURL()
    {
        HttpRequest request = HttpContext.Current.Request;
        string url = request.Url.ToString();
        return url;
    }
}

我试着把它分解一点:)

在过去,我还推出了自己的日志记录类并使用了Console.Writeln(),但实际上已经有很多好的日志记录选项,所以为什么要去那里? 我到处都使用NLog ; 它具有非常灵活的各种日志输出目的地,包括控制台和文件,大量的日志格式选项,并且设置与各种.net框架(包括紧凑)的版本是微不足道的。 运行安装程序会将NLog配置文件选项添加到Visual Studio“ 添加新项”对话框中。 在代码中使用很简单:

// declare in your class
private static Logger logger = LogManager.GetCurrentClassLogger();

...

// use in your code
logger.Debug(() => string.Format("Url: {0}", HttpContext.Current.Request.Url));

暂无
暂无

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

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