使用Razor MVC

时间:2017-08-29 12:44:48

标签: c# asp.net-mvc razor ienumerable

我有问题,我很难跳过它。

在我的_Layout.cshtml中,我正在使用IEnumerable模型:

@model IEnumerable<DluzynaSzkola.Models.Aktualnosci>

使用该模型的迭代看起来像:

<div class="wpisDodatki">
    @foreach (var item in Model)
    {
        <div> @Html.DisplayFor(modelItem => item.Dzien)</div>
    }
    <p>test<br />test<br />test</p>
</div>

在主页Index.cshtml上我使用的是模型:

@model DluzynaSzkola.Models.User

加载_Layout时,尝试使用2个模型,禁止使用。

我正在尝试2种类似的方法来解决它。

第一次尝试: 创建包含以下内容的Wrap模型类:

namespace DluzynaSzkola.Models
{
    public class Wrap
    {
        public IEnumerable<Aktualnosci> Wpisy { get; set; }
        public DluzynaSzkola.Models.User UserData { get; set; }
    }
}

在控制器中添加了操作:

public ActionResult Aktualnosci()
        {
            var Wrap = new Wrap();
            Wrap.Wpisy = db.Indeks;
            return View(Wrap);
        }
    }

创建了部分文件:_Dodatki.cshtml包含:

@model IEnumerable<DluzynaSzkola.Models.Aktualnosci>

<div class="wpisDodatki">
    @foreach (var item in Model)
    {
        <div> @Html.DisplayFor(modelItem => item.Dzien)</div>
    }
    <p>test<br />test<br />test</p>
</div>

在_Layout.cshtml中调用partial:

<div>@Html.Partial("_Dodatki", Model.Wpisy)

在_Layout中使用模型:

@model DluzynaSzkola.Models.Wrap

它给了我例外:

  

传递到字典中的模型项的类型是&#39; System.Collections.Generic.List`1 [DluzynaSzkola.Models.Aktualnosci]&#39;,但此字典需要类型为&#39的模型项; DluzynaSzkola.Models.Wrap&#39;

第二次尝试: 在控制器中创建动作:

public PartialViewResult Load()
        {
            return PartialView("~/Views/Aktualnosci/_Dodatki.cshtml");
        }
    }

有部分文件_Dodatki.cshtml:

@model IEnumerable<DluzynaSzkola.Models.Aktualnosci>

<div class="wpisDodatki">
    @foreach (var item in Model)
    {
        <div> @Html.DisplayFor(modelItem => item.Dzien)</div>
    }
    <p>test<br />test<br />test</p>
</div>

并在布局文件中调用:

@Html.Partial("~/Views/Aktualnosci/_Dodatki.cshtml")

它给了我例外:

System.NullReferenceException

在部分文件中:

Row5:      @foreach (var item in Model)

第3次尝试:

使用:

调用partial
@Html.Partial("~/Views/Aktualnosci/_Dodatki.cshtml", new List<DluzynaSzkola.Models.Aktualnosci>()

在渲染视图中没有给我迭代。

局部视图与之前的例子类似。

我不知道如何使用普通模型处理IEnumerable模型。

1 个答案:

答案 0 :(得分:0)

您是否尝试为包含IEnumerable和用户的视图创建模型?

public class Wrap
{
    public IEnumerable<Aktualnosci> Wpisy { get; set; }
    public DluzynaSzkola.Models.User UserData { get; set; }
}

当你在我的主页上说'#34;&#34;你的意思是_Layout?