MVC3 在列表视图中传递父实体
我对 MVC3 相当陌生。我正在尝试实现以下目标:
包含部分列表的页面:
@model IEnumerable<Demo.Models.Section>
我迭代这些部分并显示一些信息。每个部分都有一个项目列表。这些项目通过部分视图显示:
@model IEnumerable<Demo.Models.StringItem>
在同一个部分视图中,我有一个操作链接来创建新的 StringItem。但是当创建一个新的 StringItem 时,我需要传递它所属的部分 ID。当该部分已经有项目时,我可以传递集合中第一个项目的SectionID。但如果列表为空,我不知道如何传递需要为其创建 StringItem 的部分 ID。
我已经尝试过:
@Html.ActionLink("Create New", "CreateStringItem", ViewContext.ParentActionViewContext.ViewData.Model)
但这将传递该页面上的所有部分,这是有道理的,因为父视图是 Ienumerable 部分。
下一步要通过什么方式去传递家长ID?
I am fairly new to MVC3. I am trying to achieve the following:
Page with list of sections:
@model IEnumerable<Demo.Models.Section>
I iterate through the sections and display some info. Within each section there is a list of items. Those items are displayed through a partial view:
@model IEnumerable<Demo.Models.StringItem>
In that same partial view I have an actionlink to create a new StringItem. But when creating a new StringItem I need to pass the Section ID that it will belong to. When the section already has Items, I can pass the SectionID of the first item in the collection. BUT if the list is empty I have no clue on how to pass the Section ID for which the StringItem needs to be created.
I have tried:
@Html.ActionLink("Create New", "CreateStringItem", ViewContext.ParentActionViewContext.ViewData.Model)
But that will pass all the sections that are on that page, wich makes sense, since the parent view is Ienumerable Section.
What is the way to go forward to pass the parent ID?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 @model Demo.Models.Section 而不是 IEnumerable,然后访问您的项目数组作为 Model.Items 和 id 作为 Model.ID 或其他内容。
或者创建新模型
,然后将其用作部分视图的模型。
以这种方式访问父视图将是代码架构错误。
Use @model Demo.Models.Section instead of IEnumerable and then access your array of items as Model.Items and id as Model.ID or something.
Or create new model like
and then use that as model for partial view.
Accessing parent view in this way would be code architecture error.