Asp.net core mvc 如何将嵌套的ViewModel从视图显示到控制器

Asp.net core mvc 如何将嵌套的ViewModel从视图显示到控制器,asp.net-core-mvc,model-binding,asp.net-mvc-viewmodel,tag-helpers,Asp.net Core Mvc,Model Binding,Asp.net Mvc Viewmodel,Tag Helpers,我有下面的视图模型 public class ProductsViewModel { public IEnumerable<ProductViewModel> Products; public ProductViewModel Product; } 我用的是下面的表格 <input asp-for="@Model.Product.Name" /> <label>Description

我有下面的视图模型

 public class ProductsViewModel
 {
        public IEnumerable<ProductViewModel> Products;

        public ProductViewModel Product;
 }
我用的是下面的表格

    <input asp-for="@Model.Product.Name" />
    <label>Description</label>
    <input asp-for="@Model.Product.Description" />
    <label>Value</label>
    <input asp-for="@Model.Product.Value" />

描述
价值
我实施这一行动

public async Task<IActionResult> Post(Product model)
        {
            await productService.Create(model.Product.Name, model.Product.Description, model.Product.Value);
            return RedirectToAction(nameof(Index));
        }
公共异步任务发布(产品型号)
{
等待productService.Create(model.Product.Name、model.Product.Description、model.Product.Value);
返回重定向到操作(名称(索引));
}
但我收到的数据为null,因为操作需要Product.Name、Product.Description、Product.Value。 你知道如何从我的视角接收数据吗

固定的。这很有效

public IEnumerable<ProductViewModel> Products;
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Value { get; set; }
公共数字产品;
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共十进制值{get;set;}

但我不喜欢这一团糟。如果有人有更好的解决方案?

事实上,您的绑定方法没有错,您只是忘记了将
get和set
添加到
ViewModel

public class ProductsViewModel
{
    public IEnumerable<ProductViewModel> Products { get; set; }

    public ProductViewModel Product { get; set; }
}
公共类产品视图模型
{
公共IEnumerable乘积{get;set;}
公共产品视图模型产品{get;set;}
}

谢谢,它成功了(:显然,我的post请求无法在没有{get;set;}的情况下将数据绑定到嵌套的ProductViewModel产品中。Hi@jetfuel,如果它成功了,请随时提供有用的答案,这将帮助其他面临同样问题的人找到解决方案。谢谢:)
public class ProductsViewModel
{
    public IEnumerable<ProductViewModel> Products { get; set; }

    public ProductViewModel Product { get; set; }
}