是否可以在局部视图中加载局部视图?

时间:2017-04-21 12:00:36

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

我可以创建一个局部视图的网页,里面有另一个局部视图吗? 我已经尝试过,但它一直以无限循环结束。 那么问题就是这可能吗?

我添加了一张图片,告诉你我想做什么。 enter image description here 感谢

编辑: 我加载像这样的部分视图: 父:

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

部分观点:

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

他进入两个控制器调用

EDIT2: 这是控制器调用

[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);
}

1 个答案:

答案 0 :(得分:1)

添加

@{ Layout = null; }

到您的部分视图。

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

另一种选择是添加

[ChildActionOnly]

到您的控制器方法

[ChildActionOnly]
public PartialViewResult ProfilPartial

[ChildActionOnly]
public PartialViewResult ProfilPartialSelbst