使用<form>带有 ASP.NET 标签的普通旧HTTP GET



我有一个使用渐进式增强构建的WebForms网站,它使用母版页。 显然,默认情况下,ASP.NET 会注入标记,以便它可以管理回发。

我需要一种方法来执行以下操作

<form action="new_url" method="get">
 <input ... />
</form>

显然,.NET 正在用外部拦截请求并回发到自身。 我可以用JavaScript做到这一点,但随后我会破坏我网站的渐进式增强政策。 如果不从根本上构建一个 ASP.NET 服务器控件来管理重定向,这是不可能的吗?

谢谢马丁

标签在源文件中应该清晰可见,并带有runat="server" .但是,不应该在另一个表单标签中添加另一个表单标签,并且您不能有两个<form runat="server">

因此,实现此目的的一种方法是将表单附加到现有表单之后。使用当前的母版页/页/用户控件设置可能无法做到这一点,尤其是在母版页中获得了<form runat="server">标记时。

因此,您可以使用嵌套母版页重新评估结构,以便可以选择哪些页面将实际使用回发功能,并对其他页面使用<form>较少的母版页。

另一种方法是使用javascript从某些字段构建URL。

看看这篇文章,它可能会帮助你: ASP.NET 页面上有多个表单

我相信 Page 类上有一个名为"PostBackUrl"的属性,您可以使用它来告诉 ASP.NET 将回发发送到何处。

我不记得是页面还是链接按钮类之一,但只是谷歌"PostBackURL",你应该得到一些好的结果。

使用表单和 ASP.net,您可以通过以下方式访问获取变量

Page.Request.QueryString[<param>];

它是这样用的

<form action="new_url" method="get">
    <input type="text" id="txtName" name="name" />
</form>

在page_load方法或提交页面中,您可以使用此代码访问输入字段

Page.Request.QueryString["name"]

相关内容

  • 没有找到相关文章

最新更新