2010-08-03 70 views
2

每当我在Visual Studio 2010上创建新的Web窗体时,默认名称始终为“Default.aspx”。这是一个轻微的痛苦,因为我不得不每次改变它为“Index.aspx”。在Visual Studio 2010中将默认“Default.aspx”更改为“Index.aspx”

我怎样才能改变这个,使“Index.aspx”是默认名称?

谢谢。

+0

你的意思是项目而不是形式?它要求提供新形式的名称。 – 2010-08-03 16:28:17

+0

它确实要求名称,但名称预先填入'Default.aspx',但我希望它是'Index.aspx'。对不起,如果我没有在我原来的问题中说清楚。 – Curt 2010-08-03 18:06:11

回答

1

不,在Visual Studio中没有办法做到这一点。你只能在IIS中做到这一点。

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

2

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

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

1

虽然这并不能掩盖所有的方案我已经使用了如下因素代码在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语句中)!

+0

谢谢Johnathan。为什么我必须记得在部署前删除它?我不能依靠我的记忆大声笑,所以我可能会将它包装在“IF(SiteIsLive)”声明或 – Curt 2011-08-05 08:41:09

+1

我怀疑让IIS处理默认页面会更有效率(如index.aspx )而不是在每个请求中使用此代码。或者(可能建议你是否患有遗忘);)你可以将这些代码包装在'#if(DEBUG)'中,这意味着它只能在调试模式下运行代码时执行。你可以在这里找到[有关MSDN的更多详细信息](http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx) – 2011-08-07 08:01:56

+0

关于此方法的说明是'HttpContext.Current.Session'尚未在转接电话后初始化。然而,传输(默认情况下,但可以删除)传递所有变量。 – Crypth 2011-10-05 11:26:36

相关问题