2010-09-17 168 views
0

當用戶點擊一個鏈接時,我想記錄一些信息。我不能做一個AJAX請求,因爲如果他們點擊一個鏈接,頁面將會卸載(因爲他們正在進入一個新頁面),我不想強​​迫他們留在頁面上,直到一個同步事件飾面。ASP.NET MVC中的全局路由參數

所以我有一個想法是添加一個參數到網址。即該網址將是actual/action?actualParams&infoIWantToLog=data。然後,我可以剝離我想記錄的信息,記錄下來,然後將他們的URL傳遞給他們實際想要去做的動作。這可能與MVC路由有關嗎?

+0

「如果他們點擊一個鏈接,頁面將會卸載」 - 這是怎麼回事?正常的AJAX鏈接不會刷新/重新加載/卸載頁面。 – bzlm 2010-09-17 17:51:00

+0

@bzlm:對,這只是一個普通的ol鏈接。我們中的一些人仍然在使用它們:P – Xodarap 2010-09-17 21:30:41

回答

2

通常,跟蹤URL會將用戶發送到特定頁面(在本例中爲動作),例如/ Track,然後通過查詢字符串將參數傳遞給日誌(包括髮送用戶的URL)。

例如,轉到Google並搜索一個術語。右鍵單擊一個結果並複製該URL。現在將其粘貼到記事本中。您會發現它不是直接鏈接到搜索結果,而是Google跟蹤頁面。例如,當我搜索asp.net並單擊第一個結果(www.asp.net),這是實際的URL谷歌向我:

http://www.google.com/url?sa=t&source=web&cd=2&ved=0CDcQFjAB&url=http%3A%2F%2Fwww.asp.net%2Fget-started&rct=j&q=asp.net&ei=BauTTIuCDIaWsgOHgo3ACg&usg=AFQjCNGR6cOBKtUWIKZs9jnpz0vYRDu_EA&sig2=r2q31zniuxHQ4Y6BIoudow&cad=rja

該網頁登錄我的點擊,然後將我重定向到www.asp.net網站。

您的跟蹤操作可以做同樣的事情。您將創建一個帶有Index操作的Track控制器,然後在那裏解析查詢字符串,記錄信息,然後將RedirectResult返回給您要發送給用戶的URL。

有意義嗎?

+0

我想這很有道理,儘管它有點煩人,我不能僅僅通過路由來處理這個問題。謝謝! – Xodarap 2010-09-17 21:34:12

+0

@Xodarap:我想我並不理解你的意思,「只要處理這個路由。」路由只是一種將傳入的URL映射到控制器中的操作的方法。 – 2010-09-17 22:14:16

+0

我想將URL映射到兩個動作(曲目和實際動作)。也許路由是一個不好的範例;一個更好的例子可能是您可以使用修飾操作的安全屬性。安全和日誌都是交叉問題,所以如果有一個簡單的乾淨的方式來處理它們,那將是很好的。 – Xodarap 2010-09-18 00:58:02