내 목표는 하위 페이지의 요소에 대한 클래스를 정의 할 수 있다는 것입니다. 내 마스터 페이지에서 I는 다음과 같습니다이 ContentPlaceHolder 동작을 이해해야합니까?
<body class="<myown:AttributePlaceHolder runat="server" ID="BodyCssClass"/>">
AttributePlaceHolder
는 ContentPlaceHolder
에서 파생를, 단지 그것의 내용에서 어떤 바꿈 및 여분의 공백을 제거합니다. 또한 설명 할 문제는 을 보통 ContentPlaceHolder
으로 변경할 때 발생합니다.
Cannot find ContentPlaceHolder 'BodyCssClass' in the master page '/Views/Shared/Site.Master', verify content control's ContentPlaceHolderID attribute in the content page
에 위의 코드 라인을 변경 : 그것은 않습니다
<body class="<% %><myown:AttributePlaceHolder runat="server" ID="BodyCssClass"/>">
(덧붙여서 <% %>
에주의하십시오).
트릭입니다. 여기에 뭔가 빠졌는지 궁금합니다.
<asp:Content ContentPlaceHolderID="BodyCssClass" runat="server">profile-edit
someotherclass
another-class
</asp:Content>
하고 멋지게로 인쇄됩니다 : 심지어
<asp:Content ContentPlaceHolderID="BodyCssClass" runat="server">profile-edit someotherclass another-class</asp:Content>
또는 :
그냥 추가 정보를 원하시면, 내 아이 페이지에 내가 쓸 수
<body class="profile-edit someotherclass another-class">
편집
요한에 의해 지적 된 다음은 또한 작동합니다 :
큰 따옴표를 하나의 것으로 변경합니다.
그러나 내 html보다는 작은 따옴표로 표시됩니다. 나를 미치게하지만, 그게 내게 상처를줍니다 ...
ASP.NET 파싱 엔진과 관련이 있다고 생각합니다.이 경우 버그 또는 "기능"이라고해야합니까?
<body class='<asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server">ms-areaseparator</asp:ContentPlaceHolder>' ... >
작은 따옴표가있는 곳을 바꿀 수 없습니까?
–실제로 작동해야합니다. 그것은 당신이 "dohhh"로가는 것들 중 하나입니다. 어쨌든 여전히 동작을 설명하지 않습니다. – Gidon
아니요, 한 번에 정말로 이해가되지 않지만, 그것에 대해 생각한다면; 다른 큰 따옴표 쌍 안에 큰 따옴표가있는 경우 이스케이프 처리하거나 따옴표를 바꾸기 위해 변경하지 않은 경우 작동합니까? 그래서 그것은 의미가 있습니다. 그러나 다른 방법으로는 그렇지 않습니다. .. –