我正试图在模板中使用kendo MVC助手(远程模板文件加载方式如下:http://docs.kendoui.com/howto/load-templates-external-files#remote-模板。我有一个控制器,它向客户端发送生成的标记)
我的模板文件类似于:
<script id="my-pager-template" type="text/x-kendo-template">
My pager
@(Html.Kendo().ListView<Business.Data.MyPage>()
.Name("myPagerListView")
.TagName("div")
.ClientTemplateId("my-pager-item-template")
.DataSource(dataSource => dataSource.Read(read =>
read.Action("GetMyPages","Page")
)
).ToClientTemplate())
</script>
<script id="my-pager-item-template" type="text/x-kendo-template" >
<div class="k-button" data-pager-item-pageid="${PageID}" data-pager-item-pagename="${Name}">
<span>${ButtonText}</span>
</div>
</script>
但是生成的标记在浏览器控制台(chrome)中给了我一个Uncaught SyntaxError: Unexpected token <
。
助手生成的标记如下:
<div id="myPagerListView"></div>
<script>
jQuery(function(){jQuery("#myPagerListView").kendoListView({"dataSource":{"transport":{"prefix":"","read":{"url":"/Page/GetMyPages"}},"serverPaging":true,"serverSorting":true,"serverFiltering":true,"serverGrouping":true,"serverAggregates":true,"type":"aspnetmvc-ajax","filter":[],"schema":{"data":"Data","total":"Total","errors":"Errors","model":{"fields":{"PageID":{"type":"number"},"Name":{"type":"string"},"ButtonText":{"type":"string"}}}}},"template":kendo.template($('#my-pager-item-template').html())});});
</script>
</script>
我可以用这种方式使用剑道助手吗?(在这篇文章中,它说它可以使用:我可以在模板中使用Kendo MVC助手吗?)
我收到过很多次这个消息,你的代码很好,问题来了,检索数据,kendo反序列化它从read.Action("GetMyPages","Page")
收到的东西,你可能检索的是HTML页面而不是json,所以它试图序列化像"<html ...."
这样的东西,在这里你得到了错误,只需检查chrome上的url,检查你是否收到json
我是说支票http://yourdomain.com/Pages/GetPages/(或者根据您的应用程序进行路由),您可能会得到一个HTML页面
我也有这个问题。我已经意识到(在过去的3个小时里:()这是因为我使用ajax,然后使用jquery html函数加载模板文件,而jquery的函数在试图解析而不是执行被kendo由于未知原因损坏的模板文件时发生了错误
(转义该脚本标记,在我的情况下,在该空间中插入按钮)
幸运的是,当剑道自己尝试使用模板时,它确实有效
为了解决这个问题,我直接在页面上呈现了部分视图。
希望这能有所帮助。