2011-04-28 25 views
0

我堅持以下情形:調用javascript函數返回任何類型的結果在控制器動作

在我看來有一個項目列表。根據項目所代表的內容,單擊某個項目將帶您到相應的視圖並顯示這些結果。現在在視圖中顯示結果不是問題;這工作正常。但是,某些項目應顯示在彈出窗口中,而不是視圖中。我將部分視圖與bPopup和ShowListDialog(data)這樣的javascript函數一起使用來顯示對話框並綁定數據。如何在操作中返回任何需要的結果(我懷疑JavaScriptResult)時調用javascript函數。

我認爲我的行爲應該像此刻是:

公衆的ActionResult的ResponseItem(INT參考) { ResponseBase的響應= repository.RetrieveResponse(參考);

if (response.ShouldShowInView) 
{ 
    return View(response.RedirectUrl, response.Data); 
} 
else 
{ 
    return JavaScript("ShowListDialog(" + response.Data.JsonString + ");"); 
} 

}

我一直在尋找回報的例子JavaScript的結果,我甚至不能得到那個工作。如果我這樣說:

return JavaScript(「alert('Hello');」);

然後在IE中詢問我是否想打開javascript文件;在Chrome和Firefox中它只顯示alert('Hello');在頁面上。

預先感謝幫助:) d

+0

你想要生成一些JavaScript並執行它嗎?您可以簡單地生成一個HTML頁面,其中包含一個標籤,並將腳本放入其中。 – 2011-04-28 10:03:02

+0

不,我想調用一個名爲ShowListDialog的現有javascript函數,它將在當前頁面頂部顯示一個彈出對話框(如果點擊的列表項產生需要在彈出窗口中顯示的響應類型)。顯示視圖相關的項目是沒有問題的。 – Dieter 2011-04-28 10:11:15

+0

我明白了,我的意思是你可以生成一個html響應,包括一個腳本標記,把你的腳本ShowListDialog(...)放在裏面。然後腳本將被調用。 – 2011-04-28 10:40:08

回答

0

通過項目循環,你可以決定哪些是彈出,這是不然後鏈接到基於該2個獨立的動作是什麼時候?

JavaScriptResult只有在通過ajax調用動作時纔有效,這可能是爲什麼它不起作用(如果不是)。你可以使用這個來告訴它是否是ajax請求,然後返回適當的結果。

相關問題