- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个表单
<form id="form" action="" method="post" runat="server">
在 C# 代码隐藏中通过访问时
HtmlForm form = (HtmlForm)this.FindControl("form");
并试图改变行为
form.Attributes.Add("action","./newpage.aspx?data=data");
或
form.Attributes["action"] = "./newpage.aspx?data=data");
没有改变。表单仍然路由到同一页面。如何在代码隐藏中动态更改表单的操作?
额外的细节:我有一个包含 get 变量的页面。该获取变量需要在表单的操作部分中发送。因此,page1 响应具有 getvar1。 page1 上的表单需要发送其发布数据和 getvar1。我打算通过表单操作中的代码隐藏来调整它,但想避免使用 InnerHtml 来编写整个表单。 Holly 建议使用 javascript,但我还没有找到使用 javascript 获取 GET 变量的好方法。 ..... 为大众提供更多信息。
回答说明:我选择了@HollyStyles 提到的路线。 ajax 调用完成后,我使用 javascript 更改表单操作。但是,标记为正确的答案是通过代码隐藏执行此操作的正确方法。
最佳答案
您可以使用 Control Adapters的 asp.net。
这是一个工作示例:
public class RewriteFormHtmlTextWriter : HtmlTextWriter
{
public RewriteFormHtmlTextWriter(HtmlTextWriter writer)
: base(writer)
{
this.InnerWriter = writer.InnerWriter;
}
public RewriteFormHtmlTextWriter(System.IO.TextWriter writer)
: base(writer)
{
base.InnerWriter = writer;
}
public override void WriteAttribute(string name, string value, bool fEncode)
{
if (name == "action")
{
value = "Change here your value"
}
base.WriteAttribute(name, value, fEncode);
}
}
使用上面的代码,并在 App_Browsers
上声明一个名为 Form.browser
的文件
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="FormRewriterControlAdapter" />
</controlAdapters>
</browser>
</browsers>
您可以更改表格。当然,这段代码会在每个表单渲染中调用。
亲戚:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
关于c# - 在 C# ASP.NET 3.5 中更改 HtmlForm 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12567848/
我有一个代码,当在电子表格单元格“B2”中找到某个值时,它会自动检查 HTML 表单上的复选框。现在我想更改代码,以便它从 B2:B8 范围内获取值并选中多个复选框,我该怎么做?供您引用here是我的
我正在使用 Poco::Net:HTMLForm 来发布请求。 现在我要输入表格: form[key] = value1 form[key] = value2 服务器端可以将key转换为列表[valu
如果我的 HTML 表单输入是这样的: 在 PHP 中,我可以处理这种帖子或获取这样的数据: $items = $_POST['invoice']['items']; $payments=$_
我有一个表单 在 C# 代码隐藏中通过访问时 HtmlForm form = (HtmlForm)this.FindControl("form"); 并试图改变行为 form.Attributes.
我这里有可以正常工作的代码: 但是,当我在不同的项目中实
我是一名优秀的程序员,十分优秀!