例如,我现在所拥有的是:
Page.Response.Redirect("Default.aspx", false);
需要硬编码字符串对我来说似乎很奇怪。 Default.aspx页面已经在我的项目中。那么有没有办法重定向如下所示:
Page.Response.Redirect(Default.aspx, false);
Default.aspx只是网络表单。我认为,如果出现问题,例如您删除了网络表单但没有更新重定向,这就很明显了。
这可能吗?或者还有另一种方式我应该看看这个吗?
我想我可以在课堂上使用静态属性做些什么,但我想知道是否有内置的东西呢?
答案 0 :(得分:2)
Default.aspx与类Default
不同,后者由IDE自动生成。您可以轻松地从同一Page类继承多个.aspx文件。
这就是没有内置机制的原因 - 不能保证标记页和代码类之间存在1对1的关系。
管理这个问题的最佳方法可能就是在你在多个地方进行重定向时,简单地为你用于重定向的字符串提供资源。
答案 1 :(得分:1)
理论上你的建议很有意义,但不是每个网站都使用文件来托管内容。实际上,您可以使用压缩zip(http://msdn.microsoft.com/en-us/library/aa479502.aspx)运行网站,例如使用虚拟路径提供程序来运行任何其他类型的源。
不过,我可以看到像这样的功能的价值。您可能想向VS IDE团队建议:
答案 2 :(得分:0)
我理解你想要达到的目标,我想你可以创建自己的方法:
public string GetPageName(Type t)
{
return t.name + ".aspx";
}
并称之为:
Response.Redirect(typeof(Default));
问题是这绝不是万无一失的。首先,您需要确保在重定向之前始终调用此方法,否则它将毫无意义。另一个问题是您不知道Default.aspx
位于根文件夹中。那么你的所有HttpHandler呢,它的路径在web.config中或通过.ashx
文件配置。
<强>更新强> 并且还要考虑@womp
的重点答案 3 :(得分:0)
如果您使用的是表单身份验证,则会在{。{3}}的web.config中设置一个可以使用的内置构思。