【发布时间】:2011-11-05 05:32:34
【问题描述】:
我有一个搜索结果页面,我使用 MVC Razor 视图输出以特定方式格式化的项目列表。
@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);
请注意,我必须在服务器端 Razor 代码和客户端 jQuery 代码中复制搜索结果的 HTML 格式。我希望只有一个版本的数据绑定模板,以减少我必须进行更改时出现不匹配的机会。
阅读Stephen Walter's Intro to jQuery Templates,他暗示在将 jQuery 模板与 ASP.NET MVC 结合使用时可以“更好地结合在一起”,所以我想知道是否有解决上述情况的工具。
谢谢。
【问题讨论】:
标签: asp.net-mvc-3 jquery-templates