MVC3 在列表视图中传递父实体

发布于 2024-10-16 14:12:20 字数 631 浏览 1 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟织青萝梦 2024-10-23 14:12:20

使用 @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; }
}

,然后将其用作部分视图的模型。

以这种方式访问​​父视图将是代码架构错误。

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

class SectionModel {
    public int ParentID { get; set; }
    public IEnumerable<Demo.Models.StringItem> Items { get; set; }
}

and then use that as model for partial view.

Accessing parent view in this way would be code architecture error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文