表单操作属性不起作用 - 必须单击两次提交按钮

时间:2009-11-30 11:08:47

标签: c# asp.net vb.net

我有一个名为btnSubmit的按钮,我将表单操作属性设置为这样的URL。

 Protected Sub btnSubmit_Click(ByVa....

    Form.Attributes.Add("action", "http://now.eloqua.com/e/f2.aspx")

End Sub

这确实有效但出于某种原因它只在我第二次点击按钮后才有效。为什么会这样,我该如何解决这个问题?

我在VB.NET中使用ASP.NET 3.5(C#代码也没问题)

我真正想要做的是在提交上做一些代码,然后在所有内容完成的情况下做一些代码,然后设置表单操作属性,它必须将表单数据发送到该URL的另一个位置。

提前致谢!

4 个答案:

答案 0 :(得分:2)

Fabian是对的。

您的代码在首次提交后在服务器端执行。

要做你想做的事,你需要使用在客户端执行的scriptmanager发出一些javascript,因为它必须在提交首先发生之前发生。

使用Page.ClientScript.RegisterClientScriptBlock()发出一个脚本块,其中包含适合您的内容的函数,然后设置表单的action属性。使用OnClientClick属性从按钮调用该函数。

答案 1 :(得分:1)

它第一次不起作用,因为已经渲染了添加属性的表单。

答案 2 :(得分:0)

第一次单击按钮时,它会设置表单属性,第二次单击它时,它会提交您第一次编辑的表单...

您可能希望在页面生命周期的其他位置设置表单属性。

答案 3 :(得分:0)

如果您需要在页面之间保留POST数据,则可能需要使用Server.Tranfer。请参阅此处以获得最佳解释:Using asp.net, how do I redirect a user and change the POST data at the same time?