【问题标题】:Best way to make duplicate copies of existing ASPX page in Visual Studio在 Visual Studio 中复制现有 ASPX 页面的最佳方法
【发布时间】:2011-07-29 11:46:57
【问题描述】:

在 Visual Studio 的 Web 项目中创建现有 ASPX 页面副本的最佳方法是什么?

如果我在解决方案资源管理器中右键单击 ASPX 文件并选择复制,然后粘贴,它看起来就像我所期望的那样。我得到了一份新的 ASPX 文件副本和文件背后的代码。然后我可以重命名 ASPX 文件,文件后面的代码也会被重命名。

看起来不错,直到我打开 ASPX 文件。然后我看到它具有与原始文件相同的“继承”标签,并且它指向原始类名。

有什么我遗漏的吗?我意识到我可以手动编辑它以及文件背后的代码(因为它们声明了相同的类名,这会导致构建错误)。有没有更好的方法来做到这一点,还是我应该站起来开始做一些手工工作? :-)

【问题讨论】:

    标签: c# visual-studio-2010 webforms


    【解决方案1】:

    我几乎总是创建一个全新的页面,然后只需复制“胆量”(留下页面指令信息、命名空间等),然后根据需要进行一些查找和替换。

    【讨论】:

    • 谢谢——我希望有更优雅的东西,但是嘿,如果它有效,它有效!
    • 这是我一直在做的事情,直到我最近找到了我在下面的答案中放置的方法。感觉比复制\粘贴方法工作量少,我总是担心我会在凌晨 3 点将某些内容粘贴到错误的文件中。对我来说,只更改一些属性是一种更好的方法。
    【解决方案2】:

    以下适用于 VS 2013

    1. 使用VS右键copy\paste复制粘贴所需的aspx页面。
    2. 使用右键单击“重命名”重命名 aspx 页面。
    3. 将 aspx 页面顶部的 Inherits 标记更改为新名称。 (请注意 - 并非所有字符都允许使用)。
    4. 查看代码。
    5. 更改类的名称以匹配步骤 3 中的继承标记。

    【讨论】:

    • 此确切顺序中的确切步骤也适用于带有此附录的 VS 2017:然后更改 aspx 代码中的所有 textBox ID 和 OnTextChanged 标签(而不是 cs 代码),并让设计人员修复你的 cs 代码,否则 aspx.designer.cs 可能会搞砸。可以在Design模式(tab)下修改一些aspx,但往往需要使用Source模式(tab)。
    【解决方案3】:

    我认为 Resharper 有一个“重复”重构,它也适用于 ASPX。默认快捷键应该是 Ctrl-D

    【讨论】:

    • 你能告诉我这个命令是如何被调用的吗?通过右键单击页面并查看“重构”子菜单,我找不到任何“复制”命令。我将 VS2010 和 Resharper v7.0.1 用于 C#。
    【解决方案4】:

    我想通了 - 所以不需要答案,但我把它留在这里,因为我认为其他人可能会觉得它有用。

    我所做的是打开一个 aspx 页面 aspx.designer.vb 文件(它们对于我相同的代码隐藏文件都是相同的)并复制控件的自动生成的 WithEvents 声明。

    然后我将 aspx.vb 和 aspx.designer.vb 文件变成了空白文件(当我删除它们时,编译器抱怨它找不到它们 - 还不知道如何解决这个问题)。魔法!我所有的 aspx 文件现在都指向我的新类(和文件),我不再有重复的代码。

    顺便说一句,这不仅仅是使用多层设计的情况。我已经将所有实质性代码放在一个地方,但我仍然必须将来自 Page_Load 的调用和各种控制单击功能复制到该代码中。现在我没有任何重复...

    布赖恩

    【讨论】:

      【解决方案5】:

      类似于布赖恩的回答。

      在 VS2013 中。

      • 突出显示要复制的 .aspx
      • 按 CTRL-C,然后按 CTRL-V

      你会看到一个新的 aspx 用同样的方式创建,末尾带有“-Copy.aspx”

      • 突出显示新的 .aspx
      • 鼠标右键单击并选择“重命名...”

      键入您希望新 .aspx 调用的内容。继承等会自动更新。

      【讨论】:

      • 我刚试过这个,重命名 .aspx 并没有自动更新类名或继承行。另外,请确保不要右键单击复制的类名并选择 Refactor -> Rename...!它将覆盖源文件类名并破坏您的项目。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2017-03-02
      • 2011-02-20
      • 2014-03-15
      相关资源
      最近更新 更多