因为我必须在整个代码库中基于集合索引号引入一些条件if
else
语句
ViewData["productSl_1"] = appDataContext.Products.ToList();
@{var viewDataProd = ViewData["productSl_1"] as IEnumerable<Nazmulkp.Models.Product>;}
@for (var i = 0; i < viewDataProd.length; i++) {
{
}
编译时错误:
不包含&#39; length&#39;的定义并且没有延长方法&#39;长度&#39;接受类型&#39;长度&#39;
的第一个参数
答案 0 :(得分:0)
您可以将其投射到IList并使用Count:
ViewData["productSl_1"] = appDataContext.Products.ToList();
@{ var viewDataProd = ViewData["productSl_1"] as IList<Nazmulkp.Models.Product>;}
@for (var i = 0; i < viewDataProd.Count; i++) {
{
}
答案 1 :(得分:0)
我不会使用查看数据。我会按原样将整个列表传递给视图。
你的行动方法看起来像这样。从您的数据源获取产品并将此列表直接发送到视图:
...
name: "Dividend Compare",
viewId: "test",
pattern: "Dividend-Compare",
target: "dividendcompare"
...
设置视图以接收产品列表。使用// Make use of the using directive
using Nazmulkp.Models;
public ActionResult Index()
{
// Get you products from your data source
// I used a repository, but you can use any other way to get your data
List<Product> products = productRepository.GetAll();
return View(products);
}
而不是for loop
循环浏览这些产品。您现在可以访问索引,即foreach loop
,然后您可以使用此索引访问列表中的各个产品,例如:
i
您的观点可能如下所示:
@Model[i].Name
@Model[i].Description
@Model[i].Price
如果您需要在@model List<Nazmulkp.Models.Product>
@for (i = 0; i < Model.Count; i++)
{
<div>@Model[i].Name</div>
}
中使用if else statement
,那么它将如下所示:
for loop