2011-12-29 49 views
0

我想記錄下瀏覽我的網頁客戶端,所以我這樣做是在session_start()的Global.asax無法保存在Global.asax中的在session_start()更改數據庫在asp.net MVC C#

String ipAddress = System.Web. HttpContext.Current.Request. 
         ServerVariables["REMOTE_ADDR"]; 
    Web.Models.WebsiteTracking web_track = new Web.Models.WebsiteTracking(); 
    web_track.IDUser = 0; 
    web_track.ActiveLoginDate = DateTime.Now; 
    web_track.IPAddress = ipAddress; 

    this.DataContext.WebsiteTrackings.AddObject(web_track); 
    this.DataContext.SaveChanges(); 

我將用戶的IP地址,他們瀏覽的日期以及ID = 0記錄到表WebsiteTracking中。但它錯誤:不包含定義DataContext並且沒有擴展方法'DataContext'。

任何人都可以告訴我,我必須用「this.DataContext」替換哪個東西。

非常感謝。

+0

'Session_Start'方法中的'this'是指'HttpApplication';除非你已經替換了,沒有'DataContext'屬性,需要更多關於你正在嘗試做什麼的信息等。 – 2011-12-29 01:49:11

+0

我想將記錄保存到數據庫中。在我的模型中,我使用「公共類CustomerModels:ItemEntityDataContext」,所以我可以寫這個.DataContext,但在下面的代碼塊中,我不知道如何驗證它。 – Nothing 2011-12-29 01:53:10

回答

1

嘗試創建DataContext的新實例。

String ipAddress = System.Web. HttpContext.Current.Request. 
        ServerVariables["REMOTE_ADDR"]; 
Web.Models.WebsiteTracking web_track = new Web.Models.WebsiteTracking(); 
web_track.IDUser = 0; 
web_track.ActiveLoginDate = DateTime.Now; 
web_track.IPAddress = ipAddress; 

using(var dataContext = new DataContext()) 
{ 
    dataContext.WebsiteTrackings.AddObject(web_track); 
    dataContext.SaveChanges(); 
} 
+0

錯誤:無法找到類型或命名空間'Datacontext'。 – Nothing 2011-12-29 02:02:38

+2

@socheata然後將'DataContext'替換爲您的實際上下文名稱。 – Eranga 2011-12-29 02:04:35