Вставить ContentPlaceHolder между двойными кавычками - PullRequest
0 голосов
/ 01 мая 2009

Я использую .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>">

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

Ответы [ 3 ]

1 голос
/ 01 мая 2009

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

0 голосов
/ 01 мая 2009

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

0 голосов
/ 01 мая 2009

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

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

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

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

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

...