gpt4 book ai didi

c# - 在 ASP.NET MVC View 中访问模型的属性

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:47 25 4
gpt4 key购买 nike

我在访问正在传递 View 的模型的属性之一时遇到问题。

模型定义如下:

public class ProductBasket
{
public ProductBasket()
{
Products = new List<ProductConfiguration>();
Errors = new List<string>();
}
public List<ProductConfiguration> Products { get; set; }
public List<string> Errors { get; set; }
}

在我看来,模型指令是这样声明的:

@model MyApp.ViewModels.Product.ProductBasket

我无法在 foreach 循环中访问 Products 属性。在 VisualStudio 中,当我将鼠标悬停在循环中的 Model 变量时,它显示:

List<MyApp.ViewModels.Product.ProductConfiguration> 
WebViewPage<List<MyApp.ViewModels.Product.ProductConfiguration>>.Model { get; }

这是我使用的以前模型 - 我不知道为什么会这样?

我做了什么

本能告诉我,我应该能够使用 Model.Products 访问 Products 属性(如果这不正确,请告诉我),但我不明白为什么 View 没有被传递ProductBasket?

最佳答案

看起来您正在将一组 ProductConfiguration 类对象传递给 View 。确保您正在从您的操作方法中将 ProductBasket 类的单个对象发送到您的 View

public ActionResult Something()
{
var vm = new ProductBasket();

//The below line is hard coded for demo. You may replace with actual list from db.
vm.Products.Add(new ProductConfiguration { Id=1,Name="test"});

return View(vm);
}

假设您的 ProductConfiguration 类有一个 Id 和 Name 属性。

并且您的 View 应该绑定(bind)到 ProductBasket

@model YourNameSpaceHere.ProductBasket
<h1>Products</h1>

@foreach(var product in Model.Products)
{
<h2>@product.Name</h2>
}

关于c# - 在 ASP.NET MVC View 中访问模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com