ASP.NET MVC 3: Mehrere Html.RenderAction() Problem

Ich bin mit einem problem konfrontiert, mit ASP.NET MVC 3 mit Razor-rendering-engine (C#). Ich bin mit mehreren Html.RenderAction() Methoden innerhalb einer Sicht-und nur das layout dargestellt wird.

Ein wichtiger Hinweis, bevor Sie fortfahren: ich kann nicht kopieren Sie den code weil ich nicht über das geistige Eigentum Rechte zu tun. 🙁

Jedenfalls habe ich bemerkt, dass wenn ich verwendet die folgende syntax @{ RenderSection("SectionName", true); } statt @RenderSection("SectionName", true) gab es eine generische Ausnahme, dass Sie einfach sagt, dass es unmöglich ist, die Abschnitte mit einem stack-trace, die schien zu sagen, dass es möglicherweise einige asynchrone problem. Zwischen, ich bin mit synchron-Controller, so ist dies vielleicht eine führen, aber ich weiß nicht viel über synchrone/asynchrone Steuerungen und Wann sollte man Sie für bestimmte Situationen.

Alles im Rahmen, hier ist, was ich versuche zu tun, im code/Pseudocode/Website-Struktur...

~/View/Shared/_ViewStart.cshtml

(Selects a layout according to certain conditions.)

~/View/Shared/_Layout1.cshtml

<! doctype HTML>
<html>
    <head>
        <!-- some irrelevant content here... -->
    </head>

    <body>
        <div id="page">
            <div id="header">
                @RenderSection("Header", true)
            </div>

            <div id="content">
                <div id="main1">
                    @RenderSection("Table1", true)
                    @RenderSection("Table2", true)
                </div>

                <div id="main2">
                    @RenderSection("Content", true)
                </div>
            </div>

            <div id ="footer">
                @RenderSection("Footer", true)
            </div>
        </div>
    </body>
</html>

~/View/Shared/_Layout2.cshtml

(another layout)

~/View/Controller1/Action1.cshtml

@section Header
{
    @RenderPage("~/Views/Shared/Sections/Header")
}

@section Footer
{
    @RenderPage("~/Views/Shared/Sections/Footer")
}

@section Table1
{
    @{ RenderAction("Table1", "Table");  }
}

@section Table2
{
    @{ RenderAction("Table2", "Table");  }
}

@section Content
{
    @{ RenderAction("Action", "Content"); }
}

~/View/Controller1/Action2.cshtml

(similar to Action1.cshtml)

~/Utilities/ModelManager.cs

public abstract class ModelManager : Controller
{
    //Some useful code for controllers here...
}

~/Controller/Controller1.cs

public class Controller1 : ModelManager
{
    #region Get Methods

    public ViewResult Action1()
    {
        return View();
    }

    public ViewResult Action2()
    {
        return View();
    }

    #endregion  

    #region Post Methods

    public ViewResult Action1(FormCollection form)
    {
        return View();
    }

    public ViewResult Action2(FormCollection form)
    {
        return View();
    }

    #endregion
}

~/Controller/Controller2.cs

(another controller similar to Controller1)

~/- Controller/Tabelle.cs

(Only important thing to note is that the actions are returning PartialViewResult.)

~/Controller/Content.cs

(Only important thing to note is that the action is returning PartialViewResult.)

~/Modell/Einheiten.edmx

(Generated with Entity Framework Wizard.)


* Edit *

Den @Html.Action(...) gearbeitet, aber ich würde wirklich gerne wissen, warum die @Html.RenderAction(...) hat nicht funktioniert. Alle Vorschläge sind willkommen. 🙂

InformationsquelleAutor Alerty | 2011-07-06
Schreibe einen Kommentar