【问题标题】:Is it possible to load a partial view in a partial view?是否可以在局部视图中加载局部视图?
【发布时间】:2017-04-21 12:00:36
【问题描述】:

我可以创建一个带有局部视图的网页,其中包含另一个局部视图吗? 我已经尝试过了,但它一直以无限循环结束。 那么问题来了,这可能吗?

我添加了一张图片来向您展示我想要做什么。 谢谢

编辑: 我像这样加载部分视图: 家长:

<div id="ProfilPartial">
   @Html.Action("ProfilPartial", new { module = "1" })
</div>

局部视图:

<div id="ProfilPartialSelbst">
    @Html.Action("ProfilPartialSelbst", new { module = "1" })
</div>

他进入了两个控制器调用

编辑2: 这是控制器调用

[Authorize]
public PartialViewResult ProfilPartial(string module, int start = 0, int anzahl = 100)
{
    int benutzerId = Int32.Parse(User.Identity.GetUserId());
    ViewBag.module = module;
    Benutzer user = Benutzer.AllList().Where(x => x.Id == benutzerId).First();
    if (module == "1") // Persönliche Daten
    {
        return PartialView("ProfilPersönlicheDaten", user);
    }
    else if (module == "2") // Unterschrift
    {
        return PartialView("ProfilUnterschrift", user);
    }
    else if (module == "3") // Rechnungs-Einstellungen
    {
        return PartialView("ProfileRechnungsEinstellungen", user);
    }

    else if (module == "4") // Angebote
    {
        return PartialView("ProfileAngebote", user);
    }

    else if (module == "5") // Leasing-Personaldaten
    {
        return PartialView("ProfilLeasingPersonalDaten", user);
    }

    else if (module == "6") // Status Selbstständigkeit
    {
        return PartialView("ProfilStatusSelbstständigkeit", user);
    }

    else if (module == "7") // Dokumente
    {
        return PartialView("ProfilDokumente", user);
    }

    else if (module == "8") // Passwort
    {
        return PartialView("ProfilPasswort", user);
    }
    return PartialView("RechnungMonatsUebersicht", user);
}


public PartialViewResult ProfilPartialSelbst(string module, int start = 0, int anzahl = 100)
{
    int benutzerId = Int32.Parse(User.Identity.GetUserId());
    ViewBag.module = module;
    Benutzer user = Benutzer.AllList().Where(x => x.Id == benutzerId).First();
    if (module == "1") // Persönliche Daten
    {
        return PartialView("ProfilSelbstständigkeitWie", user);
    }
    else if (module == "2") // Unterschrift
    {
        return PartialView("ProfilSelbstständigkeitSchutz", user);
    }
    else if (module == "3") // Rechnungs-Einstellungen
    {
        return PartialView("ProfilSelbstständigkeitInfos", user);
    }
    return PartialView("RechnungMonatsUebersicht", user);
}

【问题讨论】:

  • 你是如何加载局部视图的
  • 添加到我的问题中
  • 我想我知道发生了什么 - 请你也显示你的 ProfilPartial 和 ProfilPartialSelbst 控制器方法
  • 好的,添加到我的问题中
  • 嗯,你可以尝试将@{ Layout = null; } 添加到你的RechnungMonatsUebersicht 部分视图中

标签: c# asp.net-mvc model-view-controller partial-views asp.net-mvc-partialview


【解决方案1】:

添加

@{ Layout = null; }

到你的局部视图。

问题在于渲染局部视图会使用布局调用您的视图。
反过来,它正在渲染局部视图。这是渲染布局。这是......你明白了,因此循环(堆栈溢出异常

另一种选择是添加

[ChildActionOnly]

到你的控制器方法

[ChildActionOnly]
public PartialViewResult ProfilPartial

和

[ChildActionOnly]
public PartialViewResult ProfilPartialSelbst

【讨论】:

    猜你喜欢
    • 2017-09-01
    • 2011-11-09
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多