Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将模型中的项传递到不工作的部分视图ASP.NET MVC 5_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 将模型中的项传递到不工作的部分视图ASP.NET MVC 5

C# 将模型中的项传递到不工作的部分视图ASP.NET MVC 5,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我的视图中有一个项目数组,我试图迭代该数组并将每个项目传递给部分视图,但是它引发了一个异常,表示我试图将整个数组而不仅仅是单个项目传递给部分视图 我的主要观点是: @model Product[] @foreach (var item in Model) { @Html.Partial("_ProductDetail", item) } 我的部分观点是: @model Product <div> @Model.Description </div> 以及伪造数据

我的视图中有一个项目数组,我试图迭代该数组并将每个项目传递给部分视图,但是它引发了一个异常,表示我试图将整个数组而不仅仅是单个项目传递给部分视图

我的主要观点是:

@model Product[]
@foreach (var item in Model)
{
  @Html.Partial("_ProductDetail", item)
}
我的部分观点是:

@model Product
<div>
  @Model.Description
</div>
以及伪造数据库:

public static class FakeDb
{
    public static Product[] Products { get; set; }

    static FakeDb()
    {
        Products = new Product[2];
        DateTime utcNow = DateTime.UtcNow;

        ProductPic pp1 = new ProductPic { Filename = "71b.jpg", Default = true };
        Product p1 = new Product { DateAdded = utcNow, Price = 395, Quantity = 1, Pics = new List<ProductPic> { pp1 }, Description = "5 ft. x 8 ft. Blue, Yellow" };
        Products[0] = p1;

        ProductPic pp2 = new ProductPic { Filename = "72b.jpg" };
        Product p2 = new Product { DateAdded = utcNow.AddDays(-1), Quantity = 2, Pics = new List<ProductPic> { pp2 }, Description = "5 ft. x 8 ft. Blue, Green" };
    }
}
公共静态类FakeDb
{
公共静态产品[]产品{get;set;}
静态FakeDb()
{
产品=新产品[2];
DateTime utcNow=DateTime.utcNow;
ProductPic pp1=newproductpic{Filename=“71b.jpg”,默认值=true};
产品p1=新产品{DateAdded=utcNow,价格=395,数量=1,Pics=新列表{pp1},Description=“5英尺x 8英尺蓝色,黄色”};
产品[0]=p1;
ProductPic pp2=newproductpic{Filename=“72b.jpg”};
产品p2=新产品{DateAdded=utcNow.AddDays(-1),数量=2,图片=新列表{pp2},Description=“5英尺x 8英尺蓝,绿”};
}
}

当传递给
Partial
的元素为空时,它将传递父视图
模型
。所以,若
Product[]
数组中的元素为空,则父视图模型将传递给
Partial

您可能会检查正在迭代的数组中的任何元素是否不是
null
或传递
@Html.Partial(“\u ProductDetail”,new ViewDataDictionary(item))

每种方法:

@model Product[]
@foreach (var item in Model)
{
    if (item != null)
    {
        @Html.Partial("_ProductDetail", item)
    }
}
ViewDataDictionary方法:

@Html.Partial("_ProductDetail", new ViewDataDictionary(item))

您好,您能否在控制器中提供将模型传递给视图的代码?加价看起来不错。啊,找到了。忘记将第二个产品添加到my FakeDb中的数组。谢谢
@Html.Partial("_ProductDetail", new ViewDataDictionary(item))