2011-12-21 3 views
0

Я написал шаблонный пользовательский элемент управления MinimalTemplate, который в настоящее время не делает ничего, кроме того, что HTML-код передается в его заполнитель «ContentTemplate». Я хочу, чтобы Visual Studio 2008 имела те же функции intellisense для MinimalTemplate, что и для встроенных шаблонных элементов управления, таких как Repeater.Intellisense для Templated User Control Tags

enter image description here

enter image description here

Возможно, связанные с: Я могу вручную впечатать мои ContentTemplate теги, и он будет строить и работать должным образом, но я получаю сообщение об ошибке проверки. Я уже удалил содержимое моей папки ReflectedSchemas, как это предложено в this question.

enter image description here

Полный источник для Minimal Шаблон:

MinimalTemplate.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MinimalTemplate.ascx.cs" Inherits="MyProject.MinimalTemplate" %> 
<asp:placeholder runat=server id="contentPlaceHolder" /> 

MinimalTemplate.ascx.cs

using System.Web.UI; 

namespace MyProject 
{ 
    [ParseChildren(false)] 
    public partial class MinimalTemplate : System.Web.UI.UserControl 
    { 

     [TemplateContainer(typeof(MessageContainer))] 
     [TemplateInstance(TemplateInstance.Single)] 
     public ITemplate ContentTemplate 
     { get; set; } 

     void Page_Init() 
     { 
      if (ContentTemplate != null) 
      { 
       MessageContainer container = new MessageContainer(); 
       ContentTemplate.InstantiateIn(container); 
       contentPlaceHolder.Controls.Add(container); 
      } 
     } 

     public class MessageContainer : Control, INamingContainer { } 
    } 
} 

Какие изменения я могу сделать, чтобы мой MinimalTemplate код так что Visual Studio проверит nd автозаполняет свой тег ContentTemplate?

ответ

0

Related.

Добавить [PersistenceMode(PersistenceMode.InnerProperty)] в список атрибутов ContentTemplate. После добавления и перестройки ошибка проверки исчезла, и в раскрывающемся списке Intellisense появилось «ContentTemplate», как и ожидалось.

Во время моего расследования я уверен, что я попытался добавить это свойство два или три раза, чтобы не повлиять, поэтому я ожидаю, что валидатор VS будет немного шелушащимся. Он портит voodoo programming, но сделайте Очистить/Восстановить все и подождать несколько секунд, прежде чем увидеть, сохраняется ли ошибка проверки.

(Вам также не нужен атрибут ParseChildren для этого элемента управления.)