【问题标题】:MVC helper inside a template模板内的 MVC 助手
【发布时间】:2014-01-03 00:22:32
【问题描述】:

我正在尝试在模板中使用 kendo MVC 助手(远程模板文件加载如下:http://docs.kendoui.com/howto/load-templates-external-files#remote-templates。我有一个控制器将生成的标记发送给客户端)

我的模板文件是这样的:

<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 &lt;

助手生成的标记是这样的:

<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>

我可以这样使用剑道助手吗? (在这个帖子里说可以使用:Can I use Kendo MVC helpers inside templates?

【问题讨论】:

    标签: asp.net-mvc-4 listview kendo-ui kendo-asp.net-mvc


    【解决方案1】:

    我多次收到该消息,您的代码很好,问题在于检索数据,kendo 反序列化它从read.Action("GetMyPages","Page") 收到的内容,您可能正在检索 HTML 页面而不是 json,所以它试图序列化像"&lt;html ...." 这样的东西,在这里你得到了错误,只需检查 chrome 上的 url 以检查你是否收到了 json

    我的意思是检查http://yourdomain.com/Pages/GetPages/(或根据您的应用程序的路由),您可能会得到一个 HTML 页面

    【讨论】:

      【解决方案2】:

      我也有这个确切的问题。我已经意识到(在过去的 3 小时内:())这是因为我使用 ajax 然后使用 jquery html 函数来加载模板文件,并且错误发生在 jquery 的函数中,因为它试图解析而不是执行模板文件因未知原因被 kendo 破坏。
      (转义该脚本标签,在我的情况下,在该空间中插入按钮)。
      幸运的是,当 kendo 它自己尝试使用模板时,它确实有效。 为了解决这个问题,我直接在页面上渲染了部分视图。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-22
        • 2012-07-21
        • 2015-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-23
        相关资源
        最近更新 更多