我有一個搜索結果頁面,其中輸出使用MVC Razor視圖以特定方式格式化的項目列表。避免在服務器端Razor視圖和客戶端jQuery模板之間重複格式
@for (int i = 0; i < group.Count(); i++) {
<div class="result">
<div class="ordinal">@((i+1).ToString()).</div>
<div class="detail"><p>@group.ElementAt(i).Name</p></div>
</div>
}
客戶端可以使用jQuery AJAX以檢索新的數據集作爲JSON和jQuery模板來呈現結果集代替原來的進一步過濾這些結果。這是jQuery的模板:
<script id="resultTemplate" type="text/x-jquery-tmpl">
{{each(i, result) results}}
<div class="result">
<div class="ordinal">${i+1}.</div>
<div class="detail"><p>${name}</p></div>
</div>
{{/each}}
</script>
這是AJAX調用後勢必:
var result = $("#resultTemplate").tmpl({ results: data });
$("#resultsColumn").empty().append(result);
注意我是如何複製的HTML格式在服務器端代碼剃刀和客戶機都搜索結果邊jQuery代碼。我想只有一個版本的數據綁定模板,以便在需要進行更改時減少不匹配的可能性。
閱讀Stephen Walter's Intro to jQuery Templates他暗示在與ASP.NET MVC一起使用jQuery模板時「更好地一起」集成,所以我想知道是否有一個解決上述場景的工具。
謝謝。
這應該適用於簡單的模板,我同意它對於複雜模板(實際上我的jQuery模板使用了合成,上面是一個簡化的例子)變得不自信。如果Razor和jQuery模板能夠共享通用語法,除非會讓PHP人羣煩惱,否則會很好;)當你開始使用更具體的語言結構時,很快就會遇到限制。 – stefann