Форма, содержащая с ViewComponent - PullRequest
0 голосов
/ 18 октября 2018

Я не мог понять, как использовать ViewComponent внутри формы

Форма отображается правильно (значение в раскрывающемся списке), но привязка модели при публикации формы завершается ошибкой

Этоэто представление

<form asp-action="" method="post">
    <div asp-validation-summary="All"></div>
    <div class="row">
        <vc:periodi model="@(Model.Periodi)"></vc:periodi>
    </div>

Это ViewComponent

<div class="col-2">
@(Html.Kendo().DropDownListFor(a => a.Anno)
                    .DataTextField("Text")
                    .DataValueField("Value")
                    .BindTo(Model.Anni)
                    .HtmlAttributes(new { style = "width: 100%" }))

Независимо от того, что я выбираю в раскрывающемся списке, переменная Anno внутри Периодов объекта моделиis null

Я проверил визуализированный HTML

<input id="Anno" name="Anno" ...

Я думаю, исходя из моего опыта работы с MVC, это должно быть что-то вроде «Periodi.Anno», чтобы связыватель модели работал.Любое предложение?

1 Ответ

0 голосов
/ 19 октября 2018

По вашему опыту, имя должно быть Periodi.Anno, чтобы связать свойство ViewComponent.

Как мой тест с тегом input, как показано ниже:

<input asp-for="Name" name="MVCSubModel.Name" class="form-control" />

Я предлагаю вам попробовать:

@(Html.Kendo().DropDownListFor(a => a.Anno)
                .DataTextField("Text")
                .DataValueField("Value")
                .BindTo(Model.Anni)
                .HtmlAttributes(new { style = "width: 100%"; name = "Periodi.Anno" }))
...