【问题标题】:Override asp net web form action覆盖 asp 网络表单操作
【发布时间】:2018-08-22 14:53:13
【问题描述】:

我有以下网络表单:

工作表:

<form id="transactionParameters" method="post" runat="server" action="remote_url.aspx">
        <fieldset>
            <p>
                <label for="Username">Username:</label>
                <asp:TextBox id="Username" Text="TomSelleck" runat="server" />
            </p>

            <asp:Button ID="SubmitForm" runat="server" onclick="SubmitForm_Click" Text="Button" />  
        </fieldset>
</form>

这成功地将表单值Username提交给remote_url.aspx并将用户带到远程页面。

我面临的问题是我需要在提交表单并重定向用户之前向表单添加一个值,例如:

所需功能:

<form id="transactionParameters" method="post" runat="server">
        <fieldset>
            <p>
                <label for="Username">Username:</label>
                <asp:TextBox id="Username" Text="TomSelleck" runat="server" />
            </p>

            <asp:Button ID="SubmitForm" runat="server" onclick="SubmitForm_Click" Text="Button" />  
        </fieldset>
</form>


// This method is fired but I don't know how to execute the commented out code
protected void SubmitForm_Click(object sender, EventArgs e)
{
    // Form["Username"] = Username.Text.Uppercase();
    // Form["NewValue"] = DateTime.Now.ToString();

    // ExecuteAction(Form, "remote_url.aspx");
}

【问题讨论】:

  • OnClientClick 不起作用或具有类样式并且按钮上的 jQuery 侦听器不起作用?
  • SubitForm_Click 被解雇 - 但我不知道如何执行我已注释掉的伪代码
  • 您是否尝试将值从一页传递到另一页?
  • 没错——所以当我在我的第一个示例中提交表单时——表单元素被传递到action="remote_url.aspx" 并且用户被定向到该页面。我想在我的 SubmitForm_Click 方法中做同样的事情

标签: c# asp.net .net webforms


【解决方案1】:

您可以通过几种不同的方式完成此操作。

  • 查询字符串
  • 会话
  • 饼干
  • 内部变量/对象

问题将是什么要求?最简单的是查询字符串,只需执行Response.Redirect("...aspx?username=Tom");

然后在另一种形式上,您只需解析查询字符串。 Request.QueryString["username"]?.ToString().

缺点是你的网址有一个明文的用户名,很容易暴露。 Session 会将该信息的唯一标识符存储到 cookie 中,从而使这些方法相似。但同样简单,可以满足您的要求。

方法触发后的内部对象变量,将该对象存储在内存中,使其可访问并在其他页面加载事件中公开。

【讨论】:

  • 我需要将变量作为表单数据发送,而不是作为查询参数发送。我想复制与&lt;form id="transactionParameters" method="post" runat="server" action="remote_url.aspx"&gt; 完全相同的功能
  • 为什么?如果您有用户填写表单,为什么他们的结果或表单数据需要重定向而不是在初始回发中处理?
  • 我需要在提交之前给表单添加一个参数。该参数是根据用户输入的内容计算得出的
  • 你能举个例子吗?为什么回发时不能根据他们输入的内容添加参数?
  • 回发是SubmitForm_Click?这是我的问题 - 我如何准确复制 &lt;form id="transactionParameters" method="post" runat="server" action="remote_url.aspx"&gt; 所做的事情 - 除了在我的 SubmitForm_Click 内部?
猜你喜欢
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多