模板中的MVC帮助程序



我正试图在模板中使用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由于未知原因损坏的模板文件时发生了错误
(转义该脚本标记,在我的情况下,在该空间中插入按钮)
幸运的是,当剑道自己尝试使用模板时,它确实有效
为了解决这个问题,我直接在页面上呈现了部分视图。

希望这能有所帮助。

最新更新