当已经有另一个模型时,从剃刀上的类(cshtml)中循环列表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (95)

我的MVC项目中有一个剃须刀文件。

在这个剃须刀中,我希望遍历一个类中的对象列表。该类不在Models文件夹中,也许它必须是?我已经在使用一个

@model MVCrepetition.Models.ViewModels

现在我该如何从课堂上获得我的List

@Html.DisplayNameFor(m => m.myList)

我是否需要添加列表类作为模型并添加第二个模型?基本上,我如何导入列表来循环它?

提问于
用户回答回答于

最直接的方法是将此模型添加到ViewBag。不过,我会尽量避免这种情况。我的建议是用它自己的模型创建一个局部视图(需要循环的对象列表),你可以在其中定义任何你想要的东西。

用户回答回答于

在我的索引视图中,我使用了一个模型。我的_Layout.cshtml正在使用来自另一个模型的对象循环,是什么给我带来了错误。所以我创建了一个局部视图,并使用了新模型和循环。

例如:_Dodatki部分调用模型并创建循环:

@model IEnumerable<DluzynaSzkola.Models.Aktualnosci>
<div class="wpisDodatki">
    @foreach (var item in Model)
    {
        <div class="wpisArchiwum">@Html.ActionLink(item.Tytul, "Details", new {Style="color:black!important;", id = item.ID }, new { @style = "color:black;" })</div>
    }
</div>

_Layout调用partial _Dodatki(_Layout根本不调用任何模型):

 @Html.Action("_Dodatki", "Aktualnosci", new { area = "" })

索引调用另一个模型:

@model PagedList.IPagedList<DluzynaSzkola.Models.Aktualnosci>

和控制器看起来像:

//other actions
[ActionName("_Dodatki")]
        public ActionResult Dodatki()
        {
            using (var context = new DluzynaContext())//using controllers context
            {
                var tytuly = context.Indeks.Select(item => item).ToList(); //populating list from the context
                tytuly.Reverse(); //reversing the list of titles
                return PartialView("_Dodatki", tytuly); //returning partial with the list
            }
        }

扫码关注云+社区

领取腾讯云代金券