在Kendo UI Grid中使用ClientRowTemplate的example使用了令人讨厌的HTML字符串
.ClientRowTemplate(
"<tr><td colspan=\"6\">" +
"<div class=\"customer-details\">" +
"<img src=\"" + @Url.Content("~/Content/web/Customers/") + "#=CustomerID#.jpg\"" +
"alt=\"#=ContactName#\" />" +
"<h3 class=\"k-widget\">#=ContactName#</h3>" +
"<dl>" +
"<dt>Name:</dt><dd>#=ContactName#</dd>" +
"<dt>Company:</dt><dd>#=CompanyName#</dd>" +
"<dt>Country:</dt><dd>#=Country#</dd>" +
"</dl>" +
"<dl >" +
"<dt>Address:</dt><dd>#=Address#</dd>" +
"<dt>Phone:</dt><dd>#=Phone#</dd>" +
"</dl>" +
"</div>" +
"</td></tr>"
)
我目前正在使用部分视图.ClientRowTemplate(Html.Partial("_ClientRowTemplate").ToHtmlString())
,但将它放在同一个视图文件中会很不错。
是否有一种内置方式可以使用像<script id="rowTemplate" type="text/x-kendo-tmpl">
块更好的东西?我仍然想使用Kendo MVC助手而不是JavaScript。
答案 0 :(得分:2)
查看Haacks关于模板化剃刀代表的博客。 http://haacked.com/archive/2011/02/27/templated-razor-delegates.aspx/
基本上你可以定义一个将呈现为HTML
的剃刀定义你的剃刀代表
@{
Func<dynamic, object> tableRow = @<tr></tr>;
}
然后这样做
.ClientRowTemplate( @tableRow(null).ToString() )