微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从视图到控制器显示嵌套的 ViewModel

如何解决如何从视图到控制器显示嵌套的 ViewModel

我有以下视图模型

 public class Productsviewmodel
 {
        public IEnumerable<Productviewmodel> Products;

        public Productviewmodel Product;
 }

哪个实现

public class Productviewmodel 
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Value { get; set; }
    }

我正在使用以下表格

    <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));
        }

但我收到的数据为空,因为 Action 需要 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 and set后面加上ViewModel

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

    public ProductViewModel Product { get; set; }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。