更改 C# ASP.NET 3.5 中的 HtmlForm 操作

2023-11-23

我有一个表格

<form id="form" action="" method="post" runat="server">

当通过 C# 代码隐藏访问时

HtmlForm form = (HtmlForm)this.FindControl("form");

并尝试改变动作

form.Attributes.Add("action","./newpage.aspx?data=data");

or

form.Attributes["action"] = "./newpage.aspx?data=data");

没有做任何改变。该表单仍然路由到同一页面。如何在代码隐藏中动态更改表单的操作?

额外细节: 我有一个包含 get 变量的页面。该获取变量需要在表单的操作部分中发送。因此,page1 响应具有 getvar1。 page1 上的表单需要发送其发布数据和 getvar1。我打算通过表单操作中的代码隐藏来调整这一点,但想避免使用 InnerHtml 来编写整个表单。 Holly 建议使用 javascript,但我还没有找到使用 javascript 获取 GET 变量的好方法。 .....只是为大众提供更多信息。

答案说明:我选择走@HollyStyles 提到的路线。我使用 javascript 在 ajax 调用完成后更改表单操作。然而,标记为正确的答案是通过代码隐藏来执行此操作的正确方法。


您可以使用控制适配器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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 C# ASP.NET 3.5 中的 HtmlForm 操作 的相关文章

  • 动态选择和更新 LINQ 结果集中的列值

    我有一个场景 其中存在 LINQ 结果集 我使用了以下查询 var stockDetails from d in db BloodBanks where d bbUserName Session username ToString sele
  • 为什么这个 oracle 批量插入不起作用?

    我正在尝试将一些数据批量插入到 oracle 数据库中 我按照文档中的示例进行操作 this DataBaseAccess new OracleConnection connString var dataAdapter new Oracle
  • 比较 LINQ to SQL 中的两个日期

    我有一个数据库 其中有一个名为会议的表 会议日期使用以下格式存储在此表中 May 2nd 2011 例如 格式为5 2 2011 我的要求是获取两个日期 例如 2011 年 4 月 25 日和 2011 年 5 月 2 日 之间的会议 并编
  • & 运算符的含义是什么?

    在下面的代码中 Expression
  • 多维数组和指向指针的指针

    创建多维数组时char a 10 10 根据我的书 它说你必须使用类似于char a 10 将数组传递给函数 为什么必须这样指定长度 您不是只是将双指针传递给 with 并且该双指针不是已经指向分配的内存吗 那么为什么参数不能是char a
  • 试图使用加密来混淆我的项目打破了它

    我试图尝试不同的混淆选项 为了做到这一点 我首先尝试了加密货币 以下是我遵循的步骤 打开加密向导并选择一些选项 选择我的解决方案文件 完成向导后 我看到有些 Dll 被很好地混淆了 但我的项目现在无法构建 我注意到的两件事是 我的文件夹中有
  • 我可以在 C++ 中重写非虚函数吗

    我想知道我可以重写 C 中的非虚函数吗 因为我在使用 C 时发现了这个问题override关键字我的代码如下 class A public void say cout lt lt From A n class B public A publ
  • 如何使用 ProtoGen 从 proto 文件生成结构

    我们一直在使用 protobuf net ProtoGen 从 proto 文件生成 C cs 文件 我们希望代替类来生成结构 例如 DataContract public struct Entity1 ProtoMember 1 publ
  • 我可以对(非成员)函数使用部分模板特化吗?

    我试图在 非成员 函数上使用部分模板专业化 但我在语法上遇到了问题 我在 StackOverflow 中搜索了其他部分模板专业化问题 但这些问题涉及类或成员函数模板的部分专业化 作为起点 我有 struct RGBA RGBA uint8
  • 为什么未到达的 try-catch 块会增加运行时间?

    我目前正在创建自己的容器库 但我已经看到无法访问 if 语句无效 try catch阻止增加运行时间 这是我的测试 Vector cpp template
  • 为什么必须通过 this 指针访问模板基类成员?

    如果下面的类不是模板 我可以简单地拥有x in the derived班级 但是 通过下面的代码 我have to use this gt x Why template
  • 使用 _Alignas 进行结构成员对齐

    我想知道以下问题 是新的吗 Alignas结盟 C11 中的说明符适用于结构成员吗 我一直假设这么多 但彻底阅读了 N1570 公开草案似乎表明对齐说明符不能 出现在一个说明符限定符列表 这就是我所期望的 如果得到支持的话 我已经读过几遍语
  • 如何组合||条件语句中的运算符[重复]

    这个问题在这里已经有答案了 代替 if foo 1 foo 5 foo 9 我喜欢将它们组合起来 类似于以下内容 这不起作用 if foo 1 5 9 那可能吗 不幸的是不是 你最好的选择是创建一个扩展方法 public static bo
  • Gridview 错误:对 Bind 的调用格式不正确

    我有以下 gridview 代码
  • 将多个 Blob 输入传递到 QueueTrigger Azure 函数的最佳方法

    问题 触发后 生成 3 个 XML 文件 完成后将它们通过 ftp 传输到站点 目前的方法 我有一个 HTTP 触发器 Azure 函数 运行时将构造 3 个 XML 文件并将它们保存到 Azure 存储 Blob 容器中 由于有多个输出
  • C# 3.0 中自动属性和公共字段的区别

    我无法理解为什么 C 3 0 中存在自动实现的属性语言功能 当你说的时候有什么区别 public string FirstName than public string FirstName get set 因为它们在生成的 IL 代码 和机
  • 是否可以编写一个在另一个 Windows 应用程序中选择文本时收到通知的 Windows 应用程序?

    我很好奇是否可以编写一个程序来监视我的文本选择 一种可能的用途是编写一个与编辑器 IDE 无关的代码格式化程序 应用程序 服务 P 启动并以某种方式挂接到窗口中 以便在任何窗口中选择文本时收到通知 启动其他一些应用程序 A 用户选择 A 中
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式
  • 如何使用 Ioc Unity 注入依赖属性

    我有以下课程 public interface IServiceA string MethodA1 public interface IServiceB string MethodB1 public class ServiceA IServ
  • C#:如何处理乱序 TCP 数据包?

    请有人解释一下如何处理乱序数据包 我使用原始套接字来捕获数据包 并在数据包到来时解析它们 但其中一些数据包的顺序错误 例如 ID 标志 16390 PSH ACK 16535 PSH ACK 16638 确认 16640 PSH ACK 1

随机推荐

  • 最好的开放式 PHP 新闻通讯管理器是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找一个不错的时事通
  • 如何在做其他事情的同时从键盘获取输入?

    我正在使用 C gcc 和 ncurses 来制作一个程序来监视来自串行端口的数据 该计划有一个大while 它读取来自端口的数据 同时在屏幕上打印该信息 但问题就在这里 它如何从我的键盘读取输入 因为getch 冻结程序直到它获得输入 并
  • 如何通过前序和中序遍历构建二叉树

    我正在做一项关于从预序和中序遍历 每个节点中的一个字符 构建二叉树的作业 我试图让我的大脑围绕如何构建实际的树 以下是我关于如何实现这一目标的思考过程 将预序中的第一个条目存储为根节点 在中序中搜索该条目 取出根节点左侧的字符并将其保存为字
  • 禁用手势下拉表单/页面表模式呈现

    在 iOS 13 中 使用表单和页面样式的模式演示可以通过向下平移手势来关闭 这在我的一张表单中是有问题的 因为用户绘制到这个框中会干扰手势 它将屏幕向下拉 而不是绘制垂直线 如何在以工作表形式呈现的模式视图控制器中禁用垂直滑动以消除手势
  • 从 iPhone 到 Mac 编程

    我浏览了该网站以确保这不是重复的 如果我错过了什么 请道歉 我从事 iPhone 开发已经大约一年了 我对 Objective C Xcode 和 Cocoa 至少在 iPhone 上使用的 很满意 但 OS X 的编程似乎更复杂 对于像我
  • 如何从字符串列生成分类的 pandas DataFrame 列?

    我可以将 pandas 字符串列转换为分类列 但是当我尝试将其作为新的 DataFrame 列插入时 它似乎会立即转换回系列 str train LocationNFactor pd Categorical from array train
  • 如何在 JavaScript 中动态创建包含 HTML 实体 (— ... «) 的

    我想将 元素添加到 元素 其中 元素的文本包含 HTML 实体 在 HTML 中 代码如下所示
  • 一个或多个包与 .NETStandard 不兼容,版本=v1.5

    我创建了一个新的 NET Core 类库 并从公司内部 Nuget 服务器添加了一个 Nuget 包 我开始收到以下错误 软件包 XXXX 与 netstandard1 5 不兼容 NET标准 版本 v1 5 套餐 XXXX 1 0 支持
  • 使用 Jquery 动态更改图像 src 在 IE 和 Firefox 中不起作用

    我正在为电子邮件实施验证码 当点击linkEmail按钮电子邮件模式将打开 我必须设置由处理程序 CaptchaGenerator ashx 单击时生成的验证码图像linkEmail按钮点击 这是代码 linkEmail click fun
  • VS Code (OSX) Flutter 热重载不被保存触发

    将 VS Code 版本升级到 1 32 1 后 保存 自动保存不会触发自动热重加载 以前它就像一个魅力 按热重载按钮热重载仍然有效 根据 Flutter doctor 的说法 Flutter 似乎还不错 Doctor summary to
  • NSLayoutConstraints 可以设置动画吗? [复制]

    这个问题在这里已经有答案了 我正在尝试对一些视图进行动画处理 以便它们在横向时被巨大的键盘挡住 如果我只是简单地对框架进行动画处理 效果会很好 但其他人建议这会适得其反 我应该更新 NSLayoutConstraints 然而 它们似乎不可
  • Javascript es6 覆盖静态属性

    尝试 ES6 并尝试创建一个具有静态属性和解析函数的类 然后我想为我正在解析的每种不同类型扩展基本解析器 不确定我是否正在执行反模式 但我无法覆盖静态属性 这是我的基本解析器 class Module static name Default
  • 使用 Python 提取文件名中含有无效字符的文件

    我使用 python 的 zipfile 模块来提取 zip 存档 让我们将此文件放在http img dafont com dl f akvaleir例如 f zipfile ZipFile akvaleir zip r for file
  • iOS8 自动布局以编程方式固定到相对布局边距

    我有一个 UI 元素 UISwitch实际上 但实际上并不重要 它在 Interface Builder 中将前导和尾随空间固定到超级视图 Xcode 6 中的约束如下所示 前导空间的约束实际上是相同的 约束的值为42 0分 这正是我想要的
  • 如何使用 Groovy 高效列出 Jenkins 上当前正在运行的**所有**作业

    我一直试图在 Groovy 脚本编写器脚本中找到一种轻量级方法来列出所有当前正在运行的任何类型的作业 我发现唯一可靠的方法是 start System currentTimeMillis def jobsFound def building
  • 有没有办法强制 Checkstyle 忽略源代码中的特定警告? [复制]

    这个问题在这里已经有答案了 PMD 有一种方法可以忽略特定警告 NOPMDJava 源文件中的注释 Checkstyle有类似的选项吗 是的 看看抑制评论过滤器 and 抑制附近评论过滤器选项
  • 用mybatis 3调用pl/sql函数

    我有一个在 pl sql 中返回布尔值的函数 我已经尝试过 直接获取该布尔值没有成功 所以现在我尝试将其转换为字符串 我不想修改数据库
  • 多次执行python脚本

    我不确定执行此操作的最佳方法 但我有一个保存为 py 的 python 脚本 该脚本的最终输出是两个文件 x1 txt 和 y1 txt 基本上我想运行这个脚本1000次 每次运行用新名称写入我的两个文本文件 即x1 txt y1 txt
  • 我可以使用 Bamboo Rest - API 下载 Bamboo 构建的工件吗?

    This页面状态 Bamboo 的 REST API 提供以下功能 检索构建的工件 and here我看到文档 http myhost com 8085 bamboo rest api latest plan projectKey buil
  • 更改 C# ASP.NET 3.5 中的 HtmlForm 操作

    我有一个表格