我有一个奇怪的问题。我有一个名为search.aspx的页面。单击搜索按钮时,应该将用户重定向到另一个网站。重定向代码位于其中一个回发事件中。
以下是表单代码:
<form id="form1" runat="server" onsubmit="return CheckSearchBox();" action="http://mysearch.company.com/default.aspx" method="post" target="_top" >
我在两个环境中部署了相同的代码。
工作环境
它有.NET 2.0和3.0,但没有服务包。 以下是渲染源的方式:
<form name="form1" method="post" action="search.aspx" id="form1" onsubmit="return CheckSearchBox();" target="_top">
破碎的环境
它有.NET 2.0 sp2和3.0 sp1。 这是呈现相同代码的方式:
<form name="form1" method="post" action="http://mysearch.company.com/default.aspx" id="form1" onsubmit="return CheckSearchBox();" target="_top">
请注意,渲染的“动作”是不同的。所以,我有几个问题。
答案 0 :(得分:3)
原来,.NET 2.0 SP2发生了变化。在此之前,ASP.NET只是忽略了您指定的任何操作。但是在.NET 2.0 SP2中,它实际上试图使用动作中的任何内容。 See the KB article here
答案 1 :(得分:2)
我总是被告知ASP.NET覆盖了操作,根本不允许你控制它。这就是为什么他们添加了按钮的PostBackUrl属性,当你点击它时它会发布到另一个页面....
所以我很惊讶改变行动确实有效......但我不知道这个过程的一切: - )
HTH。
答案 2 :(得分:0)
摆脱runat =“server”