我是MVC3的新手。我正在努力实现以下目标:
包含部分列表的页面:
@model IEnumerable<Demo.Models.Section>
我遍历各个部分并显示一些信息。每个部分都有一个项目列表。这些项目通过部分视图显示:
@model IEnumerable<Demo.Models.StringItem>
在同一个局部视图中,我有一个actionlink来创建一个新的StringItem。但是在创建一个新的StringItem时,我需要传递它所属的Section ID。当该部分已经有Items时,我可以传递集合中第一个项目的SectionID。但是如果列表为空,我不知道如何传递需要创建StringItem的Section ID。
我试过了:
@Html.ActionLink("Create New", "CreateStringItem", ViewContext.ParentActionViewContext.ViewData.Model)
但是这将传递该页面上的所有部分,这是有道理的,因为父视图是Ienumerable Section。
前进传递父ID的方法是什么?
答案 0 :(得分:0)
使用@model Demo.Models.Section而不是IEnumerable,然后以Model.Items和id访问您的项目数组作为Model.ID或其他东西。
或者创建像
这样的新模型class SectionModel {
public int ParentID { get; set; }
public IEnumerable<Demo.Models.StringItem> Items { get; set; }
}
然后将其用作部分视图的模型。
以这种方式访问父视图将是代码体系结构错误。