Contentplaceholder для замены атрибутов? - PullRequest
1 голос
/ 11 ноября 2010

Код ниже работает, но смущает Visual Studio.Есть ли альтернативные / лучшие способы сделать это?

<body <asp:contentplaceholder id="BodyAttribute" runat="server"/>>

Ответы [ 3 ]

1 голос
/ 11 ноября 2010

Я не думаю, что это вообще хорошая идея.

Прежде всего, с ContentPlaceHolder s вы можете легко получить HTML с символами новой строки в атрибуте id.

Во-вторых, код будет всего спагетти . Вы не сможете поддерживать его.

В-третьих, должен быть лучший способ выполнить то, что вам нужно.

Например, если вам нужно изменить body id для стилизации CSS или использовать его в JavaScript, вам лучше создать для этого вложенный div.

Мастер:

<body>
  <!-- div wrapper for general styling purposes -->
  <div id="mainContentWrapper">
    <asp:contentplaceholder id="Maincontent" runat="server" />
  </div>
</body>

Страница:

<asp:content contentplaceholderid="MainContent" runat="server">
  <!-- div wrapper for page specific styling -->
  <div id="pageSpecificIdForYourPuprose">
    Your content goes here
  </div>
</asp:content>

Что даст вам очень стильный HTML:

<body>
  <div id="mainContentWrapper">
    <div id="pageSpecificIdForYourPuprose">
      Your content goes here
    </div>
  </div>
</body>

Я бы действительно старался избегать этих хитрых вещей WebForms, чтобы выполнить простую вещь. Простые вещи можно сделать простым способом (по крайней мере, довольно часто).

Надеюсь, это поможет.

1 голос
/ 11 ноября 2010

Вы всегда можете сделать

<body id="body1" runat="server">

эта страница показывает пример - http://msdn.microsoft.com/en-us/library/zzk7dby1(vs.71).aspx

пример основан на .net 1.1, но я использовал нечто подобное для .net 2.0

1 голос
/ 11 ноября 2010

Другой способ

<asp:contentplaceholder id="BodyAttribute" runat="server"><body></asp:contentplaceholder>

и в содержанииPlaceholder вы вводите

<body attr="whatever">

Если заполнитель не найден, используется <body>.

...