0

客户要求我们将在其自己的域上运行的站点移动到另一个应用程序的子文件夹中。

我已经使用 ISAPI 重写代理实现了这一点。

但是,有一种表格可以在网站上发回帖子。从 ASP.NET 生成的操作的 url 是“/sign-up.aspx?” . 这会将回发发送到站点的根目录。

我想将其更改为“sign-up.aspx?” (没有前导斜杠)。如果我不使用母版页,这会很好,因为我可以获得对表单的引用并更改它的操作(这是 .NET 3.5 SP1)。我试图在我的控件中使用以下代码来获取对表单的引用,但它似乎没有做任何事情。它找到了表单,但操作未设置为该值。

        HtmlForm form = ControlLocator.FindControl<HtmlForm>(Page.Master.Master, "form1");
        form.Action = "sign-up.aspx?";

这是在 Page_Load 和 ControlLocator.FindControl 是这个http://www.west-wind.com/Weblog/posts/5127.aspx的一个端口

有任何想法吗?

干杯,罗伯

4

4 回答 4

4

很好解决你的问题。但是对于想要更改 aspnetform 的操作 URL 的人来说,在 Page_Load 事件中使用这个简单的代码(即使他们有一个母版页)。

protected void Page_Load(object sender, EventArgs e)
{
    this.Form.Action = "URL Goes Here";
}
于 2012-05-29T11:53:22.603 回答
1

您是否尝试在 page_prerender 中这样做?

可能是所有主内容合并尚未在 page_load 中完成。假设 HtmlForm 是正确的类型,并且该表单实际上称为“form1”——我确信这是正确的。

于 2010-01-13T22:09:10.187 回答
1

如果您在注册表单上有一个按钮,您可以使用它的postBackUrl属性将回发重定向到不同的 URL。

<asp:button id="SignUpBtn" 
            runat="server"
            postbackurl="sign-up.aspx" 
            value="Sign Up" />

您可以在“ASP.NET 网页中的跨页发布”下找到更多信息。

于 2010-01-13T22:36:30.510 回答
0

最终发现是 umbraco 的 Form.browser 在我更改后重写了回发网址。(很抱歉在我原来的问题中没有提到使用 umbraco)。

于 2010-01-17T14:26:09.900 回答