Mein Ziel ist es, eine Klasse für das Element in einer untergeordneten Seite definieren zu können. Auf meinem Masterseite habe ich folgendes:Sollte ich dieses ContentPlaceHolder-Verhalten verstehen?
<body class="<myown:AttributePlaceHolder runat="server" ID="BodyCssClass"/>">
Die AttributePlaceHolder
von ContentPlaceHolder
leitet, und Streifen aus nur alle Zeilenumbrüche und zusätzliche Leerzeichen von seinem Inhalt. Das Problem, das ich beschreiben werde, tritt auch auf, wenn der AttributePlaceHolder
in einen normalen ContentPlaceHolder
geändert wird.
nun das oben genannte Stück Code funktioniert nicht und wird in dem folgenden Fehler am Ende:
Cannot find ContentPlaceHolder 'BodyCssClass' in the master page '/Views/Shared/Site.Master', verify content control's ContentPlaceHolderID attribute in the content page
Wenn die obige Codezeile in Ändern:
<body class="<% %><myown:AttributePlaceHolder runat="server" ID="BodyCssClass"/>">
Es tut arbeiten (beachten Sie die hinzugefügt <% %>
).
Es macht den Trick, nur wundernd, wenn ich hier etwas vermisse.
nur für die zusätzliche Informationen, in meinem Kind Seiten kann ich schreiben:
<asp:Content ContentPlaceHolderID="BodyCssClass" runat="server">profile-edit someotherclass another-class</asp:Content>
oder sogar:
<asp:Content ContentPlaceHolderID="BodyCssClass" runat="server">profile-edit
someotherclass
another-class
</asp:Content>
und es wird schön ausgedruckt werden als:
<body class="profile-edit someotherclass another-class">
Bearbeiten
Wie po von Johan funktioniert auch folgendes:
<body class='<myown:AttributePlaceHolder runat="server" ID="BodyCssClass"/>'>
Ändert die doppelten Anführungszeichen in einzelne.
Aber als mein HTML würde auch mit einfachen Anführungszeichen angezeigt. Nennt mich verrückt, aber das tut mir weh ...
Ich denke, es hat mit der ASP.NET-Parsing-Engine zu tun, in diesem Fall sollten wir es einen Fehler oder ein "Feature" nennen?
Konnte man nicht einfach die einfachen Anführungszeichen ändern?
–Das sollte in der Tat funktionieren. Das ist eines dieser Dinge, die Sie "Dohhh" gehen. Trotzdem erklärt das Verhalten immer noch nicht. – Gidon
Nein, auf einmal macht es keinen Sinn, aber wenn Sie darüber nachdenken; Wann haben doppelte Anführungszeichen in einem anderen doppelten Anführungszeichen jemals funktioniert, ohne dass sie in einzelne Anführungszeichen umgewandelt wurden? Also in gewisser Weise macht es Sinn, aber auf eine andere Art und Weise ist es nicht .. –