【问题标题】:Visual Studio 2010 Disable Designer Code Generation for particular ascx controlsVisual Studio 2010 禁用特定 ascx 控件的设计器代码生成
【发布时间】:2011-08-26 03:34:39
【问题描述】:

我目前正在 Visual Studio 2010 Prof. Ed 中为伯克利俱乐部开发一个网站。使用 Asp.net 和 Dotnetnuke v6。这将是我第二次遇到这个特定的问题/麻烦。我创建了一个新控件(ascx 文件)并一直在处理它。我想添加 Dotnetnuke htmleditor,因为它生病了,所以添加了所需的代码。即……

<%@ Register TagPrefix="dnn" TagName="TextEditor" Src="~/controls/TextEditor.ascx"%>

<dnn:TextEditor ID="EmailContent" runat="server" Height="400px" Width="100%" />

我还必须更改 ascs.designer.cs 文件,而不是读取

protected global::System.Web.UI.UserControl EmailContent;

读起来像

protected global::DotNetNuke.UI.UserControls.TextEditor EmailContent;

这使它使用了我想要的 DNN TextEditor。问题是,每当 VS 使用设计器自动生成代码时,它都会用顶行覆盖底行。这意味着每次我更改 ascx 文件时,我都必须再次更改设计器。这已经很烦人了,但我一直无法找到解决它的方法。关于如何为特定控件或自动生成的设计器文件中的代码段禁用 VS 设计器的任何想法?

【问题讨论】:

  • 为什么要更改设计器中EmailContent字段的声明?设计器文件是专门为 VS 生成的,千万不要碰它! (你不应该这样做)
  • @Pedro,当出现编译错误或解析错误(使用 aspx/ascx 文件)时,有时设计器代码生成无法正常工作。将建议检查“错误列表”中的错误/警告并尝试尽可能多地修复(尤其是设计错误)。设计器错误不是编译器错误,因此无法运行应用程序。此外,只有在打开相关文件时才会看到设计器错误 - 因此建议同时打开页面 (aspx) 和控件 (ascx) 以查看是否存在与设计器相关的错误/警告。

标签: c# asp.net visual-studio dotnetnuke


【解决方案1】:

EmailContent 声明放入ascx.cs 文件中,并将其从ascx.designer.cs 文件中删除。这将防止设计师弄乱类型。

这转到 ascx.cs:

protected global::DotNetNuke.UI.UserControls.TextEditor EmailContent;

【讨论】:

  • 试过了,看起来很有效。感谢您的信息!
【解决方案2】:

问题在于 Visual Studio 将路径 ~/ 解释为 您的 项目的根目录,而不是 DotNetNuke 网站的根目录(它将如何在运行时解析)。 p>

如果您正在处理的模块项目位于托管在本地 IIS 中的 DotNetNuke 站点中,您可以设置项目以了解其实际根目录在哪里。在项目的属性中,转到 Web 选项卡并确保已为 IIS 设置它。项目 URL 应该是您的模块的 URL(例如 http://mysite.dnndev.me/DesktopModules/MyModule),然后选中“覆盖应用程序根 URL”复选框并在此处输入网站的根(例如 http://mysite.dnndev.me)。这应该允许 Visual Studio 识别~/controls/TextEditor.ascx 指向的位置,并找到正确的类型。

也就是说,这对我们来说大约 90% 的时间都有效,但是我们有一些项目无论出于何种原因这都不起作用,然后我们求助于 @mika's answer 从设计器文件中移动声明到代码隐藏文件。

【讨论】:

  • 优秀的答案。首先尝试这些步骤很容易,如果出现任何问题,则回退到代码隐藏解决方案(请参阅DNN Blog 文章)。无论哪种方式,我都无法获得完整的设计视图支持,不管它的价值是什么。设计视图总是抱怨“找不到文件'~/controls/TextEditor.ascx'”。
猜你喜欢
  • 1970-01-01
  • 2014-01-08
  • 2012-10-20
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
相关资源
最近更新 更多