【问题标题】:Create code behind file after aspx has been created创建 aspx 后在文件后面创建代码
【发布时间】:2012-03-19 12:47:26
【问题描述】:

我刚刚继承了一个由设计师创建的网站。该站点最初是使用所有 *.html 文件创建的。设计器将所有 *.html 文件重命名为 *.aspx 文件。因此没有创建 aspx.cs 文件。我将该站点拉入一个新的 VS2012 解决方案。我的问题是,VS 2010 中有没有办法为现有的独立 aspx 文件自动创建代码隐藏文件?

【问题讨论】:

  • 你不能,不是真的 - 只是重命名一个 HTML 文件不会产生 ASPX - 你需要在顶部声明标题,例如,它引用类,后面的代码等。它会更容易重命名文件,然后只需添加新的 ASPX 页面并将 HTML 复制到其中。你有多少个文件?
  • 自动化的工具会很棒。

标签: asp.net visual-studio-2010


【解决方案1】:

我不知道自动执行此操作的方法,但如果现有 *.aspx 文件中没有服务器端代码,那么它应该只是添加 .cs 代码隐藏文件然后将它们连接起来的情况在<%@ Page 标签中像这样:

<%@ Page Title="YourPageTitle" Language="C#" AutoEventWireup="true" CodeBehind="YourPage.aspx.cs" Inherits="YourNamespace.YourPage" %>

注意:这不会创建YourPage.aspx.designer.cs 文件。 (我通常会删除这些,因为它们会导致合并问题 - 我发现手动添加需要引用到我的代码隐藏文件的控件更容易。)

另一种选择是为每个页面创建一个具有正确名称的新“Web 表单”,然后将现有标记复制并粘贴到其中。如果现有 *.aspx 文件中确实有服务器代码,则需要手动将其复制到代码隐藏中。

【讨论】:

  • 听起来唯一的方法就是手动创建文件。听起来像是一个建议箱。
  • @MikeMurphy 是的,我浏览了一些 VS2010 扩展,例如 VSCommandsProductivity Power Tools。我仍然不相信他们对此无能为力,但我在最初的搜索中找不到任何东西。如果你有比我更多的时间搜索,我很确定你能找到满足你需要的东西。无法始终创建自己的扩展程序?
  • 如果您安装了 ReSharper,它将为您完成这项工作。
【解决方案2】:

根据我在这里找到的:http://forums.asp.net/t/1229894.aspx/1

  1. 右键单击您的解决方案资源管理器。
  2. 添加新项目 -> 类文件。
  3. 将该文件命名为您的 aspx 名称,例如:Default.aspx.cs
  4. 当它询问您文件应该在 app_code 中时,单击“否”。
  5. 在你的aspx页面属性中添加

    AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default"
    
  6. 类似地,在您刚刚添加的类文件中删除所有内容。你的类应该是这样的:

    //all namespaces go here
    
    
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    }
    

【讨论】:

  • 为什么默认?它不应该是您正在创建的任何页面的名称吗?当然你会有数百个这样的页面不应该背后的代码都不同吗?那么在这两种情况下(cs文件和aspx页面)它不是网页的名称吗?
  • 默认仅作为示例。如果可以的话,请随意清理它。
【解决方案3】:

添加新的 .cs 文件后,您可能希望看到该文件看起来像一个代码隐藏文件(缩进、图标等)。这样做:

  1. 卸载项目
  2. 编辑项目
  3. 在文件部分找到新的文件名 (file.aspx.cs)。
  4. 为 DependentUpon 添加一个 xml 节点。
  5. 保存并关闭项目
  6. 重新加载项目

对于文件 Profile.aspx.cs,xml 应如下所示:

<Compile Include="Profile.aspx.cs">
  <DependentUpon>Profile.aspx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Compile>

【讨论】:

  • 对我来说,我刚刚关闭了 Visual Studio,编辑了项目,然后重新打开了解决方案。感谢您提醒 CS 和 ASPX 的链接位置。
【解决方案4】:

在Visual Studio 2012中:右键项目-->点击添加-->点击Web Form-->将原来的aspx文件内容复制到新的WebForm aspx中-->删除原来的aspx文件-- > 将新名称重命名为您想要的任何名称。 现在您应该有一个新的 aspx 文件,其中包含可以使用的代码隐藏文件

【讨论】:

    【解决方案5】:

    为了避免像 David Frette 详细信息那样手动编辑项目文件的麻烦,我建议您从项目中删除该文件并创建一个具有相同名称的新文件带有代码隐藏.然后将原始 aspx 或 ascx 的内容复制粘贴到新文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2011-07-25
      • 1970-01-01
      相关资源
      最近更新 更多