【问题标题】:Change Default "Default.aspx" to "Index.aspx" on Visual Studio 2010在 Visual Studio 2010 上将默认“Default.aspx”更改为“Index.aspx”
【发布时间】:2011-03-24 20:04:49
【问题描述】:

每当我在 Visual Studio 2010 上创建新的 Web 窗体时,默认名称始终是“Default.aspx”。这有点痛苦,因为我每次都必须将其更改为“Index.aspx”。

我怎样才能改变它以使“Index.aspx”成为默认名称?

谢谢。

【问题讨论】:

  • 你的意思是项目而不是形式?它要求输入新表单的名称。
  • 它确实要求输入名称,但名称预先填充了“Default.aspx”,而我希望它是“Index.aspx”。抱歉,如果我在最初的问题中没有说清楚。

标签: .net visual-studio-2010 webforms asp.net-3.5 default


【解决方案1】:

不,在 Visual Studio 中没有办法做到这一点。您只能在 IIS 中执行此操作。

但是,您可以在 ASP.NET Web 应用程序的属性页 (Web) 中定义起始页。

【讨论】:

    【解决方案2】:

    您可以通过修改关联的 .vstemplate DefaultName 元素。例如,您可能会在类似于以下目录的目录中找到需要修改的 Web 表单模板:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\1033。每个模板文件都在 WebForm.zip 等 zip 文件中进行管理。解压缩内容,修改 .vstemplate DefaultName 元素并将更改重新应用到相同的模板文件夹。您的更新应反映在 Visual Studio 中。 (您可能需要重新启动 VS。)

    作为替代方案,您应该考虑创建自己的模板(基于原始模板)而不是修改默认模板。

    【讨论】:

      【解决方案3】:

      虽然这并未涵盖所有场景,但我已使用 Gloabal.asax.cs 中的以下代码来实现此目的:

      public class Global : System.Web.HttpApplication
      {
          protected void Application_BeginRequest(object sender, EventArgs e)
          {
              if (Request.Url.AbsolutePath.EndsWith("/"))
              {
                  Server.Transfer(Request.Url.AbsolutePath + "index.aspx");
              }
          }
      }
      

      *在部署代码时一定要记得去掉这段代码(或者包装在DEBUG语句中)!

      【讨论】:

      • 谢谢乔纳森。为什么我必须记得在部署之前删除它?我不能依赖我的记忆,哈哈,所以我可能会将它包装在“IF(SiteIsLive)”语句或其他东西中
      • 我怀疑让 IIS 处理默认页面(例如 index.aspx)比在每个请求上都使用此代码更有效。或者(如果您健忘,可能会建议);)您可以将此代码包装在#if (DEBUG) 中,这意味着它只会在以调试模式运行代码时执行。你可以找到more details on MSDN here
      • 关于这种方法的注意事项是,HttpContext.Current.Session 在转接调用后尚未初始化。然而,传输确实(默认情况下,但可以删除)传递所有变量。
      猜你喜欢
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2012-12-12
      • 2011-12-01
      • 2011-03-27
      相关资源
      最近更新 更多