Вставить ContentPlaceHolder между двойными кавычками

StackOverflow https://stackoverflow.com/questions/812470

  •  03-07-2019
  •  | 
  •  

Вопрос

Я использую .NET MVC, и на страницах просмотра я установил заполнитель содержимого, который содержит идентификатор, который будет использоваться на главной странице, следующим образом:

Просмотр страницы:

<asp:Content ID="CDomBodyId" ContentPlaceHolderID="DomBodyId" runat="server">LmpDemoRequests</asp:Content>

Главная страница:

<body id='<asp:ContentPlaceHolder ID="DomBodyId" runat="server"></asp:ContentPlaceHolder>'>

Таким образом, в данном конкретном случае тег body будет выглядеть следующим образом на конечной HTML-странице:

<body id='LmpDemoRequests'>

Я хотел бы иметь двойные кавычки вокруг тега body id, но инвертирование кавычек, подобных приведенным ниже, делает intellisense неспособным найти заполнитель содержимого, давая мне много предупреждений при компиляции.

<body id="<asp:ContentPlaceHolder ID='DomBodyId' runat='server'></asp:ContentPlaceHolder>">

Есть ли способ обойти это?

Это было полезно?

Решение

Попробуйте объявить BodyID как свойство вашей MasterPage. Установите его значение на странице просмотра. Тогда вы можете сделать что-то вроде <html> <body='<%= BodyID %>'> </body </html>

Другие советы

Это проблема редактора ASP.NET. Это не специфично для MVC. Я думаю, что обходной путь довольно хорош, и я не вижу определенного недостатка.

Не уверен, что я неправильно понял ваш вопрос, но вы также можете добавить:

<body id="site" runat="server"></body>

А затем получите доступ к нему на своей странице

HtmlControl body = (HtmlControl)Master.FindControl("site");
body.Attributes.Add("class", "LmpDemoRequests");

Надеюсь, я вас правильно понял.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top