2015-04-22 72 views
0

我有一個JavaScript變量通過設置div的數據,網址如下叫locid,我想作爲一個URL的一部分使用:JavaScript變量在Url.Content

data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=locid&AsyncUpdateID=catalogue-view'> 

我知道我可以不要像我在示例代碼中那樣拋出該字符串中的位置,但我只是將它放在那裏以說明我需要我的JavaScript變量的位置。我怎樣才能做到這一點?

+0

你是如何設置數據網址的? – Jivings

+0

「GET」表單將使用global.aspx頁面將此附加到URL中嗎?您是否未使用表單填充此URL –

+0

JavaScript和Serverside代碼不能同時運行。 – epascarello

回答

1

您不能直接將Javascript變量用於屬性。 解決方法是重新排序url的參數並在腳本標記中設置JavaScript變量。

<button id="myButton" data-url='@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?AsyncUpdateID=catalogue-view'></button> 

我在這裏重新命名了url參數。位置參數將通過以下腳本進行設置。將此腳本放在按鈕元素之後。

<script> 
var button = document.getElementById('myButton'); 
var url=button.getAttribute('data-url'); 
url+="&LocationID=" + locid; 
button.setAttribute('data-url',url); 
</script> 
+0

謝謝,這確實設置了data-url屬性,但是我的問題是頁面加載,然後設置了屬性,因此它不會使用適當的數據更新我的div。我怎樣才能刷新局部視圖? – mgrenier

3

這裏的問題是@ url.content需要在服務器上運行,其中JavaScript變量不可見。編寫一個獨立的AJAX調用來獲取內容並設置數據內容中的內容

0

你可以把價值在使用document.write的頁面,但你不能寫出來,在標籤內,你必須寫出整個標籤。例如:

<script> 
document.write('<div data-url="@Url.Content("~/Catalogue_Items/ItemsActionViewPartial/")@Model.CatItemID?LocationID=' + locid + '&AsyncUpdateID=catalogue-view">'); 
</script>