我正在使用Server.Transfer()将处理从一个页面转移到另一个页面。问题是页面源中的表单操作已经被传输,它是指目标页面,而不是浏览器中URL的原始页面。
有没有办法让表单的操作反映浏览器中的URL,而不是实际的目标页面?
提前致谢!
标记
答案 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上。