在MVC4中的单个视图中访问多个模型中的项目

时间:2014-04-24 02:35:11

标签: c# asp.net-mvc-4 razor view model

我遇到了如何从mvc中的不同视图访问变量的问题。我设置它的方式是我在视图上有一个模态,我想显示多个模型的值。我知道我必须使用foreach语句迭代这些项目,但我不知道如何访问其他项目。

这就是我在视图中调用模型的方式:

@model IEnumerable<MyApp.Models.Problems>

以下是我尝试访问值的模型:

public class Problems
    {
        public int Id { get; set; }
        public string Title { get; set; }

        public IEnumerable<MyApp.Models.Category> Categories { get; set; }
        public IEnumerable<MyApp.Models.Type> Types {get; set;}

    }

这是我的其他型号:

public partial class Category
    {
        public int Id { get; set; }
        public string Title { get; set; }
    }

public partial class Type
    {
        public int Id { get; set; }
        public int Order { get; set; }
        public string Description { get; set; }
    }

这是我想要做的一个例子:

这会调用正在加载的问题模型中的标题:

@Html.DisplayNameFor(model => model.Title)

但我希望它能够在同一视图中调用类别标题。任何人都有任何想法或可以指出我正确的方向,将非常感谢!!!

1 个答案:

答案 0 :(得分:1)

这是如何使用嵌套的foreach循环来实现您想要的:

@foreach (Problems problems in Model)
{
    foreach (Category category in problems.Categories)
    {
        @Html.DisplayNameFor(category => @category.Title)
    }

    ...
}

您可能需要在视图顶部添加using语句,以包含模型所在的命名空间。即:

@using MyApp.Models