Как правильно подходить для инициализации данных модели внутри страницы макета mvc и связывать их с выпадающим списком? - PullRequest
0 голосов
/ 14 мая 2019

В настоящее время я делаю следующую логику:

У меня есть страница макета, на которой мне нужно отобразить список Kendo.DropDown.

Я создал модель:

публичный класс CultureModel { public string Culture {get; задавать; }

public List<string> AvailableCultures { get; set; }

public CultureModel()
{
    PopulateCulture();
}

private void PopulateCulture()
{
    CultureModel cm = new CultureModel();
    cm.AvailableCultures = new List<string>();
    cm.AvailableCultures.Add("en-US");
    cm.AvailableCultures.Add("de-DE");
    cm.AvailableCultures.Add("es-ES");
}

}

И в моем макете я определяю модель: @model CultureModel

Затем я пытаюсь отобразить DisplayTemplate, чтобы показать раскрывающийся список:

 @Html.DisplayFor(x => x.AvailableCultures, "_CultureSelector")

И мой шаблон:

@model List<string>

<label for="culture">Choose culture:</label>
@(Html.Kendo().DropDownList()
        .Name("culture")
)

Это правильный подход?

1 Ответ

1 голос
/ 14 мая 2019

Думая о вашем сценарии использования, имея раскрывающийся список в файле макета, было бы неплохо создать раскрывающийся список кендо со следующим кодом непосредственно в файле макета:

@{
 @(Html.Kendo().DropDownList()
      .Name("Cultures")
      .DataTextField("Text")
      .DataValueField("Value")
      .BindTo(new List<SelectListItem>() {
          new SelectListItem() {
              Text = "en-US",
              Value = "1"
          },
          new SelectListItem() {
              Text = "de-DE",
              Value = "2"
          },
          new SelectListItem() {
              Text = "es-ES",
              Value = "3"
          }
      })
   )
}

Возможно, использовать частичное представление для рендерингакод в макете для лучшей организации кода и удобочитаемости: @Html.Partial("_CultureSelector")

Я нашел код на сайте telerik: https://demos.telerik.com/aspnet-mvc/dropdownlist

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...