模板化用户控制标签的智能感知

时间:2011-12-21 14:49:21

标签: asp.net visual-studio-2008

我编写了一个模板化的用户控件MinimalTemplate,除了将HTML传递到其“ContentTemplate”占位符之外,它目前只执行任何操作。我希望Visual Studio 2008具有与MinimalTemplate相同的智能感知功能,它具有内置的模板化控件,如Repeater。

enter image description here

enter image description here

可能相关:我可以手动输入我的ContentTemplate标签,它将构建并正常运行,但是我收到验证错误。我已经删除了我的ReflectedSchemas文件夹的内容,如this question中所述。

enter image description here

最小模板的完整来源:

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验证并自动填充其ContentTemplate标记?

1 个答案:

答案 0 :(得分:0)

Related

[PersistenceMode(PersistenceMode.InnerProperty)]添加到ContentTemplate的属性列表中。添加并重建后,验证错误消失,“ContentTemplate”在Intellisense下拉列表中按预期显示。

在调查期间,我确定我尝试添加此属性两到三次没有效果,所以我希望VS验证器有点不稳定。它有点voodoo programming,但是做了一个Clean / Rebuild All并等待几秒钟,然后再看看验证错误是否仍然存在。

(此外,您不需要此控件的ParseChildren属性。)