除非指定了表单操作,否则不会调用按钮单击处理程序

时间:2011-03-09 11:46:13

标签: .net asp.net

我有一个简单的ASP.NET Web应用程序用于数据收集(一个带有两个文本字段和一个Telerik编辑器的webform,一个用于提交服务器端OnClick事件监听器的按钮)。 事件侦听器将数据保存在DB上,然后重定向到另一个页面。 在开发Web服务器下,应用程序正常工作。 在IIS7下发布时,事件侦听器不会触发。我发现使其工作的唯一方法是在表单标记上指定操作:

<form id="form1" action="default.aspx" runat="server">

这是第一次发生这种情况,我之前从未遇到过这个问题(更复杂!)。

之前有没有人见过这种行为?除了我的任何(更智能)解决方案?

感谢。

1 个答案:

答案 0 :(得分:0)

如果检查生成html的来源,它将包含表单标记的操作,无论您是否指定它。那么当你没有明确地放置action =“default.aspx”时,你可以检查结果html中的动作是什么。

当我实现了一些url重写时,我看到了类似的行为,然后生成的表单操作变得错误。我必须在后面的代码中设置动作

Page.Form.Action = ResolveUrl(string.Format("~/{0}", Path.GetFileName(Request.CurrentExecutionFilePath))); 

您还可以检查Integrate Pipeline和IIS7的经典模式中是否存在相同的行为。