2011-06-17 37 views
1

我想爲我的MVC應用程序放置一些非常基本的Web跟蹤。我想在服務器端做到這一點,我想知道是否有人對我可以用來幫助我的一些簡單的類有所瞭解。任何人有任何建議我怎麼可以做服務器端的網頁跟蹤與MVC?

我想跟蹤以下內容:用戶的IP地址,他們請求的頁面,他們來自哪個國家以及DateTime郵票。

+0

你想追蹤什麼?錯誤?服務電話?你的意思是跟蹤?需要更多關於此的信息 – stack72

+0

對不起,我沒有添加足夠的信息。我想跟蹤的是頁面請求。跟蹤請求的頁面和請求的國家以及日期。 – Marie

回答

2

是的,你可以在控制器爲每個請求攔截此:

如果你想在頁面的用戶請求:

Request.RawUrl //Gives the current and complete URL the user requested

如果您希望國家它是從,你的要求可以得到用戶的IP地址和then use a ready-made function to look up where it's from

Request.UserHostAddress

您也可以獲取用戶傳入的所有路由值;以更全面地瞭解他們如何到達目的地。現在

public class MyController : Controller 
{ 
    public ActionResult Home() 
    { 
     var userIP = Request.UserHostAddress; 
     var requestedUrl = Request.UserHostAddress; 
     var routeValues = this.ControllerContext.RouteData.Route.GetRouteData(HttpContext); 
     var requestedDateTime = DateTime.Now; 
    } 
} 

,你必須把這個每個動作,這似乎傻了,所以why not have this happen for everything that's executed

protected virtual void OnActionExecuting(
    ActionExecutingContext filterContext) 
{ 
    var userIP = filterContext.HttpContext.Request.UserHostAddress; 
    var requestedUrl = filterContext.HttpContext.Request.UserHostAddress; 
    var routeData = ((MvcHandler)filterContext.HttpContext.CurrentHandler).RequestContext.RouteData.Route.GetRouteData(filterContext.HttpContext); 
    var requestedDateTime = DateTime.Now; 

} 
+0

巨大的幫助。非常感謝 – Marie

相關問題