使用以下代码:
<form id="form1" action="" runat="server">
(即使在页面加载中使用此代码隐藏form1.Action = string.Empty;
:)
...这是我得到的意外结果:
<form method="post" id="form1" name="form1" action="layouts/Default.aspx">
这是预期的结果,我希望您能帮助完成:
<!-- either action="" or no action attribute at all -->
<form method="post" id="form1" name="form1" action="">
AppPool 设置为运行 Integrated .NET v2.0.50727(我已通过打印运行时版本进行了验证)。.NET Framework v4.5 安装在服务器上(与 Visual Studio 2012 一起)。
这肯定是某种开发环境问题,原因是action=""
我的两个同事在他们的本地环境中输出了相同的代码库。它们在很大程度上具有与我相同的系统环境规范:
- Windows Server 2008 R2 64 位
- 视觉工作室 2012
- .NET 框架 v4.5
- 相同的 AppPool 设置(我们已经检查了两次和三次)
- 相同的代码库(SVN 控制),包括完全相同的
web.config
ASP.NET v3.5 SP1(在 v4.0 中更好地宣布)中的这一重大变化可能是相关的。它解释了这种行为。但是,它并没有解释为什么只有我的运行时才会获得这种重大变化。
另请注意,我已经使用该aspnet_regiis
工具尝试了所有可用的命令组合(无济于事),即来自不同的 .NET 版本文件夹以及卸载/重新安装和使用-c
等-i
。