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

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

然而,有一种表单可以在网站中进行回发。从 ASP.NET 生成的操作 URL 是 “/sign-up.aspx?”. 。这会将回发发送到站点的根目录。

我想将其更改为 “注册.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

最后想通了,这是一把umbraco的Form.browser这是重写回发网址我已经改变之后。 (道歉没有提及在我原来的问题使用一把umbraco的)。

其他提示

好为您解决问题。 但对他们来说,想要改变aspnetform的作用URL,在Page_Load事件(即使他们有一个母版页)。使用这个简单的代码

protected void Page_Load(object sender, EventArgs e)
{
    this.Form.Action = "URL Goes Here";
}

你试图做它page_prerender?

这可能是所有的主内容合并尚未在Page_Load中完成。假设HtmlForm控件是正确的类型和形式实际上是所谓的“form1中” - 我确信是正确

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top