Asp.net core 包含ViewComponent的表单

Asp.net core 包含ViewComponent的表单,asp.net-core,model-binding,asp.net-core-viewcomponent,Asp.net Core,Model Binding,Asp.net Core Viewcomponent,我不知道如何在表单中使用ViewComponent 表单呈现正确(下拉列表中的值),但发布表单时模型绑定失败 这就是观点 <form asp-action="" method="post"> <div asp-validation-summary="All"></div> <div class="row"> <vc:periodi model="@(Model.Periodi)"></vc:peri

我不知道如何在表单中使用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%" }))

@(Html.Kendo().DropDownListFor(a=>a.Anno)
.DataTextField(“文本”)
.DataValueField(“值”)
.BindTo(Model.Anni)
.HtmlAttributes(新的{style=“width:100%”)

无论我在下拉列表中选择什么,模型的对象周期I中的变量Anno都为null

我检查了呈现的HTML

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

根据您的经验,名称应为
Periodi.Anno
以绑定ViewComponent属性

使用
input
标记进行测试,如下所示:

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

是的,我试过你的解决方案,效果很好。问题是有两个对象与MVCSubModel的硬编码名称相链接,但它不应该。如果我更改了酒店的名称怎么办?好吧,为了知道重要的是结果,也许我应该写一篇文章给你GitHub@FrancescoVenturini你说的两个物体是什么意思?对于另一个选项,我建议您尝试将整个对象从视图传递到视图组件,如
.BindTo(Model.Periodi.Anni)
@(Html.Kendo().DropDownListFor(a => a.Anno)
                .DataTextField("Text")
                .DataValueField("Value")
                .BindTo(Model.Anni)
                .HtmlAttributes(new { style = "width: 100%"; name = "Periodi.Anno" }))