2012-02-24 65 views
4

我們有一個ASP.NET MVC3項目。我們使用ajax調用填充我們網站的幾個部分。假設我們在我們的cshtml中有div,我們希望放置一些搜索結果。從MVC3中的Javascript引用HTML元素的結構

<div id="SearchResult" /> 

我們已經創建了與我們想要我們的JavaScript來指代所有的元素常量列表文件

var selectors = { 
    SearchResult: '#SearchResult', 
    ... 
}; 

當我們想訪問div我們在我們的Javascript使用selectors.SearchResult

到目前爲止,這麼好。但是來自一個我們擁有強大綁定,編譯時間警告等的c#世界,我們認爲這裏的耦合有點鬆散。如果我們想重構我們的div ID,我們必須非常小心地找到所有參考並更新它們。

有沒有什麼好的做法,保持javascript和HTML標識符同步?用於將所有div ID提取到JavaScript文件的任何模板/腳本?

+0

'如果我們要重構我們的div編號,我們必須非常小心地找到所有引用和更新它們 - 對於給定的ID,您在cshtml中有多少個引用? – wal 2012-02-24 14:31:36

+0

通常在每個cshtml中,每個cshtml中的id通常在1-3個不同的JS文件的0-5位置引用。 – 2012-02-24 17:52:00

回答

2

添加腳本到視圖

<script type="text/javascript"> 
    window.viewConfig = { searchResult: '#SearchResult' }; 
</script> 

,有你的JS文件閱讀本window.viewConfig.searchResult


您還可以進一步將此ID存儲在變量中並使用它。

@{ 
    var myId = "SearchResult"; 
} 

然後使用@myId這樣的股利將

<div id="@myId"></div> 

和腳本將

<script type="text/javascript"> 
    window.viewConfig = { searchResult: '#@myid' }; 
</script> 
相關問題