384 Stimmen

Einfügen von Inhalten in bestimmte Abschnitte aus einer Teilansicht ASP.NET MVC 3 mit Razor View Engine

Ich habe diesen Abschnitt in meinem _Layout.cshtml

@RenderSection("Scripts", false)

Ich kann sie leicht aus der Vogelperspektive verwenden:

@section Scripts { 
    @*Stuff comes here*@
}

Was ich kämpfe mit ist, wie man einige Inhalte innerhalb dieses Abschnitts von einer partiellen Ansicht injiziert zu bekommen.

Nehmen wir an, dass dies meine Ansichtsseite ist:

@section Scripts { 

    <script>
        //code comes here
    </script>
}

<div>
    poo bar poo
</div>

<div>
  @Html.Partial("_myPartial")
</div>

Ich muss einige Inhalte in die Scripts Abschnitt von _myPartial Teilansicht.

Wie kann ich das tun?

-3voto

user4298890 Punkte 7

Nehmen Sie an, Sie haben eine partielle Ansicht namens _contact.cshtml, Ihr Kontakt kann eine rechtliche (Name) oder ein physisches Thema (Vorname, Nachname) sein. Ihre Ansicht sollte kümmern, was gerendert wird und das kann mit Javascript erreicht werden. so verzögert Rendering und JS innerhalb der Ansicht kann erforderlich sein.

Die einzige Möglichkeit, die ich mir vorstellen kann, ist, eine unaufdringliche Möglichkeit zu schaffen, solche UI-Belange zu behandeln.

beachten Sie auch, dass MVC 6 eine so genannte View Component haben wird, auch MVC Zukunft hatte einige ähnliche Dinge und Telerik unterstützt auch so etwas...

-4voto

luis Punkte 66

Ich habe gerade diesen Code auf meine partielle Ansicht hinzugefügt und das Problem gelöst, obwohl nicht sehr sauber, es funktioniert. Sie müssen sicherstellen, dass die Ids der Objekte, die Sie gerendert werden.

<script>
    $(document).ready(function () {
        $("#Profile_ProfileID").selectmenu({ icons: { button: 'ui-icon-circle-arrow-s' } });
        $("#TitleID_FK").selectmenu({ icons: { button: 'ui-icon-circle-arrow-s' } });
        $("#CityID_FK").selectmenu({ icons: { button: 'ui-icon-circle-arrow-s' } });
        $("#GenderID_FK").selectmenu({ icons: { button: 'ui-icon-circle-arrow-s' } });
        $("#PackageID_FK").selectmenu({ icons: { button: 'ui-icon-circle-arrow-s' } });
    });
</script>

-5voto

Pouria Jafari Punkte 1

Ich hatte ein ähnliches Problem und habe es hiermit gelöst:

@section ***{
@RenderSection("****", required: false)
}

Das ist eine schöne Art der Injektion, schätze ich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X