2013-12-15 3 views
4

Я пытаюсь использовать кендо помощника MVC внутри шаблона (удаленный файл шаблона загружается, как:. http://docs.kendoui.com/howto/load-templates-external-files#remote-templates У меня есть контроллер, который посылает клиенту сгенерированный разметки)MVC помощник в шаблоне

Мой файл шаблона что-то вроде:

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

Но генерируемая разметка дает мне в моем браузере консоли (хром) в 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> 

Могу ли я использовать кендо хелперы этот путь? (В этой статье говорится, что он может быть использован: Can I use Kendo MVC helpers inside templates?)

ответ

0

Я получил это сообщение много раз, ваш код хорошо, проблема возникает извлечение данных, кендо десериализации что recieves от read.Action("GetMyPages","Page"), вам вероятно запрашивает HTML-страницу вместо JSON, поэтому он пытается сериализовать что-то вроде "<html ...." и здесь вы получили ошибку, просто проверить URL на хроме, чтобы проверить, если вы получите от Согласовать JSon

я имею в виду проверить http://yourdomain.com/Pages/GetPages/ (или маршрутизация в соответствии с вашим приложением), вы, вероятно, получите HTML-страницу

0

У меня тоже была эта точная проблема. Я понял (за последние 3 часа :(), что это связано с тем, что я использовал ajax, а затем функцию jquery html для загрузки файла шаблона и что ошибка происходит в функции jquery, когда он пытался разобрать, чем выполнить файл шаблона, который по неизвестной причине был искажен kendo.
(ускользающий от этого тега скрипта и в моем случае вставляя кнопки в этом пространстве).
Fortunatly, когда kendo. Он сам пытается использовать шаблон, который он действительно работает.
Чтобы обойти это проблема, которую я вынес частичный вид прямо на странице.

Надеется, что это помогает.

Смежные вопросы