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");
}
}
}
如果你有什么想法,我将不胜感激。
有时如果删除&重新添加控件,设计器没有得到更新,这可能是由于权限问题-你确定所有文件都是可写的,并且你有权限吗?
你有其他正常工作的用户控件吗?我见过扩展(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是一个"软"错误。
谢谢你的帮助。