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

时间:2010-10-19 22:34:51

标签: c# asp.net url

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

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

谢谢,

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

我试图将其分解一下:)

答案 3 :(得分:0)

过去我还推出了自己的日志记录类,并使用了 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));