Visual Studio 2010设计器文件未更新

本文关键字:文件 更新 Studio 2010 Visual | 更新日期: 2023-09-27 18:30:01

请不要告诉我删除设计器文件并将页面转换为应用程序-我已经这样做了,但它没有工作

我有一个用户控件,我已经通过编程添加了2个ASP超链接控件。我无法使控件显示在设计器文件中。

我曾尝试手动将它们添加到设计器文件中,但在生成时已将其删除。

我搜索了SO,看到了关于删除设计器文件并将ASCX页面转换为应用程序的解决方案,但这并没有奏效。

因此,在构建时,项目会出错,因为代码找不到我的控件。

<asp:HyperLink ID="hplSiteLink2" NavigateUrl='<%# GetSiteLink(Eval("SiteName"))%>' runat="server">VIEW SITE INFO</asp:HyperLink>
        protected void GetSiteLink(object SiteName) 
    {
        string sn = string.Empty;
        if (SiteName is string)
        {
            sn = SiteName.ToString();
            if (sn == "redlionnewquay")
            {
                hplSiteLink.NavigateUrl = "http://www.redlionnewquay.co.uk";
                hplSiteLink2.NavigateUrl = "http://www.redlionnewquay.co.uk";
            }
            else
            {
                hplSiteLink.NavigateUrl = "~/Venue/Home/" + Eval("SiteNameUrl");
                hplSiteLink2.NavigateUrl = "~/Venue/Home/" + Eval("SiteNameUrl");
            }   
        }          
    }

如果你有什么想法,我将不胜感激。

Visual Studio 2010设计器文件未更新

有时如果删除&重新添加控件,设计器没有得到更新,这可能是由于权限问题-你确定所有文件都是可写的,并且你有权限吗?

你有其他正常工作的用户控件吗?我见过扩展(ascx)由于某种原因失去关联的情况,所以VS不知道如何正确处理它。如果切换视图,会有什么不同吗?项目中有没有名字冲突的可能性?

最后,如果其他方法都不起作用,请尝试从项目中删除用户控件,关闭Visual Studio,然后重新打开解决方案&试着添加一个新的。

好吧,我想我已经解决了这个问题。关于这个主题的其他主题让我走上了正轨,声明如果你的代码中有任何错误,它将不会生成设计器文件。

考虑到这一点,我反复查看了程序,意识到我在if语句中运行Eval——这是垃圾,所以我把代码改为:

        public string GetSiteLink(object SiteName)
    {
        string sn = string.Empty;
        string sHtml = string.Empty;
        if (SiteName is string)
        {
            sn = SiteName.ToString();
            if (sn == "redlionnewquay")
            {
                sHtml = "http://www.redlionnewquay.co.uk";
            }
            else
            {
                sHtml = "~/Venue/Home/" + SiteName;
            }
        }
        return sHtml;
    }

这解决了这个问题,尽管它不像以前的代码那样明显,但我猜后面的代码中的Eval是一个"软"错误。

谢谢你的帮助。