簡體   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