2011-04-07 99 views
1

如果我需要從JavaScript代碼中調用某個控制器的某個動作方法,我可以稱之爲傳遞href,對吧?類似的東西:來自javascript的調用動作方法

$.colorbox({ href: '/Calendar/SessionPropertiesEditbox?starts='+start+' }) 

這不會工作。問題是確切的鏈接還應該包括域名。 但你不知道域名是什麼。今天它可能是「http:// localhost:7741」,明天可能完全不同。

那麼如何在JavaScript代碼中模擬ActionLink行爲?

回答

3

你是錯的;那可行。

這是一個域相對路徑,所以瀏覽器會自動添加當前域。

如果您的應用程序未在域根目錄中運行,則它將無法工作,因爲它將顯示在域根目錄中。
如果是這樣,您需要致電Url.Action並將其結果傳遞給您的Javascript。

在Razor視圖,那會是什麼樣子

<script> 
    var url = "@Server.JavaScriptStringEncode(Url.Action(...))"; 
</script> 
+0

真的哦......也許我的路由壞了。我需要檢查。謝謝 – Agzam 2011-04-07 16:24:47

+0

看我的編輯。你在域根目錄下,還是你在'localhost:port/YourAppName'? – SLaks 2011-04-07 16:25:41

+0

不,不,不,我不能包含剃刀語法。我從.js文件調用它。或者...我實際上可以(?) – Agzam 2011-04-07 16:26:05