2009-12-21 21 views
1

因此,我有一個頁面,如下所示: alt text http://img704.imageshack.us/img704/5973/croppercapture3.png如何在我的頁面中設置一個變量基於ASP.NET MVC中我的控制器動作的JavaScript?

這是我的基本消息收件箱。我現在有2頁,收件箱和發送(最終會有其他人)。這些都共享相同的視圖,並且只有2個不同的操作來填充適當的數據。

右側(消息列表)中的元素是基於我的兩個控制器操作Inbox(int?page)和Sent(int?Page)填充其數據的分部視圖。

所以,我有一個視圖「MessageView」和一個部分視圖「MessageList」之間共享收件箱/發送。

但是,我現在必須讓這些箭頭按鈕(「<」「>」)使用Ajax工作。我知道如何很好地使用jQuery ajax調用,並且我知道如何呈現動作調用的結果(它返回一個局部視圖)。

的問題來自於一個事實,即,使這些分頁AJAX調用JavaScript需要知道兩件事情:

  • 當前頁是什麼(無論是/消息/收件箱或/消息/發送)
  • 當前頁面是什麼(在查詢字符串中指定,即/ messages/inbox?page = 2)。

不知道我在哪個頁面(收件箱或發送),它不知道哪個網址,使ajax調用。是否應該回發到/ messages/inbox或/ messages/sent?

如果我沒有使用Ajax加載這些消息,它將會很簡單,只需將相應的url加載到「<」和「>」按鈕的鏈接標記中即可。但我不能,因爲我的一部分要求指出,它必須加載下面的消息,而不會明顯刷新到新頁面。

回答

1

在JavaScript中,您可以檢查window.location.pathname以查看當前頁面URL的路徑名部分。

window.location.search爲您提供查詢字符串。

0

當用戶點擊收件箱或發送按鈕時,您需要重寫箭頭中的網址,以便它們指向正確的位置。

+0

當他們點擊箭頭時,它不會跟隨鏈接。我正在做一個jquery ajax調用來加載下面的消息。那麼,如何重寫網址幫助我? – KingNestor 2009-12-21 20:50:59

+0

另外,如果他們前往www.mysite.com/messages/sent,該怎麼辦?現在,JavaScript需要知道發送的頁面是直接加載的。因爲用戶沒有點擊菜單上的「發送」。 – KingNestor 2009-12-21 20:51:43

+0

然後,您可以改寫它們的onclick事件。 '('#nextArrow')。bind('click',{box:myBox,page:myPage},function(e){doMyAjaxCall(e.data.box,e.data.page);})' – Jacob 2009-12-21 21:00:08

相關問題