Проблема Telerik MVC с window и Razor view engine

#asp.net-mvc-3 #razor #telerik-mvc

#asp.net-mvc-3 #razor #telerik-mvc

Вопрос:

Я пытаюсь обновить свой проект, чтобы использовать Razor. Я использовал инструмент преобразования Telerikhttps://github.com/telerik/razor-converter чтобы преобразовать мои представления в Razor, но я получаю ошибки, связанные с элементом управления Telerik Window.

Вот пример разметки для элемента управления window:

 @Html.Telerik().Window()
   .Name("ClientWindow")
    .Content(@<text>

        <div id="Div1">
            <div class="bgTop">
                <label for="drpFilter">
                    Filter:</label>
                @Html.DropDownListFor(x => x.ClientLookupViewModel.SelectedFilter, Model.ClientLookupViewModel.FilterBy, new { id = "drpClientFilter" })
                <label>
                    By:</label>
                @Html.TextBoxFor(x => x.ClientLookupViewModel.FilterValue, new { id = "filterValue" })

                <button type="button" value=" " class="t-icon t-refresh refreshButton" title="Refresh Client amp;amp; Matter"
                    onclick="refreshClientClicked()">
                </button>
                @Html.ValidationMessageFor(x => x.ClientLookupViewModel.FilterValue)
            </div>
            <iframe id="frameClientLookup" src="@Url.Action("ClientIndex","Lookup")" style="border: 0px;
                height: 404px; width: 100%; margin: 0px; padding: 0px;"></iframe>
            <div class="bgBottom">
                <input style="float: right; margin-top: 5px" type="button" value="OK" id="Button1" onclick="btnClientOkayClicked()" /></div>
        </div>

   </text>)
    .Modal(true)
    .Width(800)
    .Height(473)
   .Title("Client Lookup")
   .Buttons(buttons => buttons.Refresh().Maximize().Close())
   .Visible(false)
   .HtmlAttributes(new { id = "ClientWindow" })
   .Render();
  

Это приводит к следующей ошибке

Описание ошибки синтаксического анализатора: Ошибка произошла во время синтаксического анализа ресурса, необходимого для обслуживания этого запроса. Пожалуйста, ознакомьтесь со следующими конкретными сведениями об ошибке синтаксического анализа и соответствующим образом измените исходный файл.

Сообщение об ошибке синтаксического анализатора: «<» недопустимо в начале блока кода. Допустимы только идентификаторы, ключевые слова, комментарии, «(» и «{«.

Ошибка источника:

 Line 41:             @Html.Telerik().Window()
Line 42:        .Name("ClientWindow")
Line 43:         .Content(@<text>
Line 44:             
Line 45:             <div id="Div1">
-----------------------
  

Кто-нибудь знает, в чем здесь проблема?

Спасибо

Ответ №1:

Вы должны изменить свой код следующим образом:

Старый:

 @Html.Telerik().Window()
 /* rest is omitted for brevity */
.Render();
  

НОВОЕ:

 @ { 
  Html.Telerik().Window()
 /* rest is omitted for brevity */
  .Render(); 
}
  

Ответ №2:

Поскольку в этом фрагменте кода есть пробелы и новые строки, вам нужно заключить все это в круглые скобки, чтобы заставить Razor продолжить синтаксический анализ после новой строки.

Комментарии:

1. Извините, не могли бы вы уточнить, где должны быть круглые скобки? Спасибо

2. @nixon: @(Html.Teleirk.Whatever...)