我有一个使用Progressive Enhancement构建的WebForms网站,该网站使用母版页。显然,ASP.NET默认注入标记,因此它可以管理回发。
我需要一种方法来执行以下操作
<form action="new_url" method="get">
<input ... />
</form>
显然,.NET正在通过外部拦截请求并回复自身。我可以用JavaScript做到这一点,但后来我将打破我网站的Progressive Enhancement政策。如果没有基本构建ASP.NET服务器控件来管理重定向,这是不可能的?
由于 马丁
答案 0 :(得分:1)
我相信Page类上有一个名为“PostBackUrl”的属性,可以用来告诉ASP.NET在哪里发送回发。
我不记得它是Page还是其中一个链接按钮类,而只是谷歌“PostBackURL”,你应该得到一些好的结果。
答案 1 :(得分:1)
使用表单和ASP.net,您可以使用
访问Get variablesPage.Request.QueryString[<param>];
它像这样使用
<form action="new_url" method="get">
<input type="text" id="txtName" name="name" />
</form>
在page_load方法或提交页面中,您可以使用此代码访问输入字段
Page.Request.QueryString["name"]
答案 2 :(得分:1)
标记应该在源文件中很明显,并带有runat="server"
。但是,不应该在中添加另一个表单标记,而不能有两个<form runat="server">
。
因此,实现此目的的一种方法是在现有的之后附加表单。您可能无法使用当前的MasterPages / Pages / UserControls设置,特别是如果您在MasterPage中获得<form runat="server">
标记。
因此,您可以使用嵌套母版页重新评估您的结构,这样您就可以选择实际使用PostBack功能的页面,并为其他页面使用<form>
更少的MasterPage。
另一种方法是使用javascript从某些字段构建URL。
看看这篇文章,它可能会对您有所帮助:Multiple forms on ASP.NET page