如何动态更改MasterPage上aspnetForm的Action属性
我们正在尝试动态修改母版页中主ASP.NET表单的Action属性。
该页面有一个单选按钮,用户选择其中一个选项并单击提交,在回发时,根据选择应该设置表单的操作属性,并且应该自动再次提交表单。
我们试图使用JavaScript。
document.forms[0].action = "option1.aspx"; document.forms[0].submit();
但这似乎不起作用,对action属性没有影响。
如果我们不使用母版页,可以通过使用轻松实现
this.Form.Action = "option1.aspx"; ClientScript.RegisterStartupScript(this.GetType(),"test1", "document.form[0].submit();",true);
可悲的是,我们无法删除母版页..关于如何实现这一点的任何指示……?
这是我读过的,他们希望他们没有做过。 Form标记获取其操作属性的硬编码。 您必须使用控制适配器才能在运行时控制其构造。 我特别为URL重写使用它,当我要求回发URL是我创建的重写URL。 Scott Gu为它制作了代码,你可以在这里找到它:
http://www.scottgu.com/blogposts/urlrewrite/UrlRewrite_HttpModule1.zip
以及文章的地址:
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
表单是否需要将值传递给结果页面? 如果没有,为什么不直接使用Response.Redirect到正确的页面? 例如,假设您正在使用名为lstOptions的RadioButtonList:
protected void btnSubmit_Click(object sender, EventArgs ags) { switch (lstOptions.SelectedValue) { case "option1": Response.Redirect("~/option1.apsx"); break; //etc } }
如果您必须传递值,为什么甚至会触发回帖? 听起来你可以通过使用javascript来完成你想要的。 例如,假设您的表单名为form1,而您的单选按钮具有选项名称:
- ASP.NET – 如何使用C#显示javascript警报?
- 禁用默认按钮或在asp.net中输入密钥c#
- 在Chrome或Firefox上使用Visual Studio 2015调试Java脚本
- 如何在c#中检索字符串formData js
- 使用Twitter Bootstrap,C#,asp.net和javascript上传文件
- 将对象转换为对象数组
- 需要使用javascript将所选文本设置为粗体/斜体/下划线,并使用c#保存和检索相同的文本
- 如何在javascript中获取UTC偏移量(在C#中类似于TimeZoneInfo.GetUtcOffset)
- 保持JavaScript和C#对象模型之间的一致性