使用Server.Transfer()</form>时的<form>操作

时间:2010-01-05 18:22:44

标签: c# asp.net asp.net-3.5

我正在使用Server.Transfer()将处理从一个页面转移到另一个页面。问题是页面源中的表单操作已经被传输,它是指目标页面,而不是浏览器中URL的原始页面。

有没有办法让表单的操作反映浏览器中的URL,而不是实际的目标页面?

提前致谢!

标记

3 个答案:

答案 0 :(得分:1)

不用担心,我使用System.Web.Routing命名空间重写了我的路由代码,因此所有逻辑都集中在我的global.asax中。干得好!

感谢您的帮助。

标记

答案 1 :(得分:0)

如果您为表单提供id,则可以更改attributes属性中的操作。

<form runat="server" id="form1" action="">
</form>

然后在代码中引用如下形式:

form1.Attributes["action"] = "new action";

更改操作可能会导致用于新页面的回发事件无法正常工作。如果您的设计允许,您的另一种选择是使用Response.Redirect。

此外,您可能需要查看PostBackUrl以获取新页面上的按钮,这将更改他们发布到的页面。

答案 2 :(得分:0)

您应该调查HttpContext.RewritePath在这里是否有用。通常在这种情况下,您将使用原始页面的URL在目标页面的PreRender事件上使用重写路径。这会导致使用当前内部路径的控件生成URL,以便“思考”它们在呈现自身时仍然在原始URL上。