代码之家  ›  专栏  ›  技术社区  ›  Bryan

为什么ASP.NET自动生成.Designer代码的类型不正确?

  •  4
  • Bryan  · 技术社区  · 15 年前

    我正在开发一个黑客网络核事件模块。我已经设置了源代码,它在没有修改的情况下构建了A-OK。但是,当我更改eventmonth.ascx文件时,Visual Studio会更新与其关联的.designer.vb文件…并声明两个类型错误的对象!看起来是这样的:

    Protected WithEvents EventIcons As Global.System.Web.UI.UserControl
    

    应该是这样的:

    Protected WithEvents EventIcons As Global.DotNetNuke.Modules.Events.EventIcons
    

    显然,这不会奏效…编译器(正确地)在代码中使用EventIcons时抛出一个错误。是什么引起的?我可以很容易地手动修复它,但当然之后它会再次断开。我不认为这是因为控件的ID与类名相同,因为同一控件的另一个实例发生了相同的事情,但名称不同。

    更新:好的…我认为这是因为在设计时找不到引用的用户控件。但它显然在运行时工作:

    <%@ Register TagPrefix="evt" TagName="Icons" Src="~/DesktopModules/Events/EventIcons.ascx" %>
    

    这是合乎逻辑的…但我想问题会变成“在设计时解决什么?”我想我可以把它改为“eventcons.ascx”,它将生成代码OK。但它会在运行时工作吗?:

    2 回复  |  直到 15 年前
        1
  •  8
  •   bdukes Jon Skeet    15 年前

    因为项目不是从应用程序根开始的,所以您必须告诉项目实际的应用程序根在哪里,然后才能解决 ~ 正确地。进入项目属性的Web选项卡,确保在“服务器”标题下选择“使用本地IIS Web服务器”。将项目URL设置为特定项目的URL(即 http://localhost/DotNetNuke_2/DesktopModules/Events )然后,检查覆盖应用程序根URL并将其设置为应用程序的根URL(即 http://localhost/DotNetNuke_2 )这将允许Web应用程序项目知道如何查找这些控件。

    这个 Src 属性与控件相关,因此只要将其设置为 "EventIcons.ascx" 而是从应用程序的根目录指定它。

        2
  •  0
  •   Kevin LaBranche    15 年前

    ~解析为应用程序文件夹的根目录。