Размещение других виджетов Kendo внутри содержимого окна для ASP.NET MVC

Можно ли использовать синтаксис бритвы для добавления виджетов кендо внутри содержимого окна кендо?

Вот пример того, что я пытаюсь сделать, но виджеты кендо не загружаются должным образом:

    <div id="window1"></div>

    @(Html.Kendo().Window()
          .Name("productWindow")
          .Title("Additional Settings")
          .Width(400)
          .Modal(true)
          .AppendTo("#window1")
          .Visible(false)
          .Actions(actions => actions.Minimize().Maximize().Close())
.Content(@<text>
    <label asp-for="ProductId"></label>
    @(Html.Kendo().DropDownList()
                      .Name("ProductId")
                      .DataTextField("Text")
                      .DataValueField("Value")
                      .BindTo(new List<SelectListItem>() {
                          new SelectListItem() {
                              Text = "Prod 1",
                              Value = "1"
                          },
                          new SelectListItem() {
                              Text = "Prod 2",
                              Value = "2"
                          },
                          new SelectListItem() {
                              Text = "Prod 3",
                              Value = "3"
                          },
                          new SelectListItem() {
                              Text = "Prod 4",
                              Value = "4"
                          }
                      })
                      .Value("2")
                      .HtmlAttributes(new { style = "width: 100%" })
                      .Deferred()
    )
    <span asp-validation-for="ProductId" class="text-danger"></span>
        </text>)
          .Deferred()
    )

person Blake Rivell    schedule 14.12.2016    source источник
comment
Я удалил свой ответ, поскольку вы сказали, что раскрывающийся список в порядке, а двойной escape не работает, как я ожидал. Однако я бы только предположил, что если вы собираетесь загружать что-то в окно, тогда было бы легче разбить содержимое на частичное при использовании Razor. Если вы встроите содержимое окна, оно очень быстро станет очень громоздким.   -  person Ross Bush    schedule 14.12.2016
comment
Хорошо, допустим, я разбил его на частичную модель с ViewModel. Как я могу сделать эту частичную часть содержимого окна. Моя общая цель состоит в том, чтобы на родительской странице была одна форма с полями на ней, а затем некоторые поля форм в окне кендо. При отправке формы все поля должны быть привязаны к модели представления и отправлены в действие Create в моем контроллере. Думаю, я близок к тому, чтобы эти элементы управления Kendo загружались в содержимое окна.   -  person Blake Rivell    schedule 14.12.2016
comment
Я добавил ответ на ваш комментарий ниже.   -  person Ross Bush    schedule 14.12.2016


Ответы (1)


Вы можете заставить окно сделать еще один вызов, чтобы запросить его содержимое. Этот вызов вернет партиал с представлением для окна.

В режиме родительского просмотра

@model ProductFormViewModel 

@(Html.Kendo().Window().LoadContentFrom("Action", "Controller",new object{"detailID",model.DetailID);

Контроллер

public ActionResult Action(int detailID)
{
    var detailModel=LoadDetail(DetailID);
    return PartialView("MyWindowPartual",detailModel);
}

Частичный просмотр окон

@model AdvancedProductSettingsViewModel

@(Html.Kendo().DropDownList()...

И пусть контроллер вернет View () или PartialView ().

person Ross Bush    schedule 14.12.2016
comment
Отлично, позвольте мне попробовать, и я отмечу как правильный. Вы знаете, как я смогу объединить ViewModel партиала с ViewModel моей родительской страницы? Допустим, у меня есть ViewModel под названием ProductFormViewModel на родительской странице, а затем на частичной у меня есть ViewModel под названием AdvancedProductSettingsViewModel. Виртуальная машина на родительской странице включает свойства как для полей на родительской странице, так и для части. Мне нужно будет как-то заполнить эти поля частичными полями. - person Blake Rivell; 14.12.2016
comment
Просто чтобы прояснить мой предыдущий пост: обычно, когда вы загружаете частичное представление, вы передаете ему модель представления, верно? В этом сценарии, как я могу гарантировать, что смогу передать ему модель представления из моей родительской формы. - person Blake Rivell; 14.12.2016
comment
Вам придется второй раз загрузить AdvancedProductSettingsViewModel для подробного представления в свой контроллер. Обычно я разбиваю родительский элемент на сводное представление со ссылкой на подробную запись или записи. Я обновил ответ одним решением. - person Ross Bush; 14.12.2016