asp.net - 以声明方式描述自定义控件属性时缺少智能感知

标签 asp.net user-controls intellisense

所以,我已经在这个项目上工作了几天,一直无法解决为我的用户控件(ascx,请注意)的自定义内部属性获得智能感知支持的问题。

我已经多次看到解决方案(使用服务器控件,请注意 .cs)。在此详细说明 article很好。使用 ascx 控件时,一切都对我有用,除了智能感知。

这是我的代码大纲:

[PersistChildren(true)]
[ParseChildren(typeof(BreadCrumbItem))]
[ControlBuilder(typeof(BreadCrumbItem))]
public partial class styledcontrols_buttons_BreadCrumb : System.Web.UI.UserControl
{
    ...

    [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    public List<BreadCrumbItem> BreadCrumbItems
    {
        get { return _breadCrumbItems; }
        set { _breadCrumbItems = value; }
    }

    ...

    protected override void AddParsedSubObject(object obj)
    {
            base.AddParsedSubObject(obj);
            if (obj is BreadCrumbItem)
                    BreadCrumbItems.Add(obj as BreadCrumbItem);
    }

    ...

    public class BreadCrumbItem : ControlBuilder
    {
        public string Text { get; set; }
        public string NavigateURL { get; set; }

        public override Type GetChildControlType(string tagName, System.Collections.IDictionary attribs)
        {
            if (String.Compare(tagName, "BreadCrumbItem", true) == 0)
            {
                return typeof(BreadCrumbItem);
            }
            return null;
        }
    }
}

这是我的标记(效果很好,只是在子对象声明上没有智能感知):
<%@ Register src="../styledcontrols/buttons/BreadCrumb.ascx" tagname="BreadCrumb" tagprefix="uc1" %>

    ...

<uc1:BreadCrumb ID="BreadCrumb1" runat="server" BreadCrumbTitleText="Current Page">
    <BreadCrumbItem Text="Home Page" NavigateURL="~/test/breadcrumbtest.aspx?iwentsomewhere=1" />
    <BreadCrumbItem Text="Secondary Page" NavigateURL="~/test/breadcrumbtest.aspx?iwentsomewhere=1" />
</uc1:BreadCrumb>

我认为问题在于智能感知引擎如何遍历支持类。我看到的所有工作示例都不是 ascx,而是 Web 服务器控件(cs,在编译的程序集中)。

如果有人可以阐明如何使用 ascx 控件完成此操作,我将不胜感激。

最佳答案

我以前通过从页面中删除所有用户控件和指令,然后将标记切换到设计 View 来解决这个问题。然后将 ascx 文件从解决方案资源管理器拖到设计窗口。如果您切换回标记 View ,智能感知会突然获取所有属性。我相信有更好的方法,但我从来没有找到一个有效的方法。

关于asp.net - 以声明方式描述自定义控件属性时缺少智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2885832/

相关文章:

Visual Studio 2010 中局部变量的 Javascript Intellisense

c# - 初始化局部 View 的数据

javascript - 在文本框中输入 12 个字符后激活功能

c# - 如何在不知道任何细节的情况下遍历Request.Form?

C# 强制 ListBox 更新元素

c# - 如何避免对 UserControl 的引用进行硬编码?

c++ - if..else.. 语句未输出预期结果。 while..循环问题?

asp.net - 如何在 ASP.NET Identity 2.0 alpha 1 中使用电子邮件登录?

c# - 你能从建议中删除一些东西吗?

C# 类库方法摘要未在智能感知中显示