替代ASP Net Web Form操作

时间:2018-08-22 14:53:13

标签: c# asp.net .net webforms

我有以下Web表单:

工作表格:

<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");
}

1 个答案:

答案 0 :(得分:0)

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

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

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

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

缺点是您的URL的用户名采用明文形式,并且很容易公开。该会话会将该信息的唯一标识符存储到cookie中,从而使这些方法相似。但同样容易,并且可能满足您的要求。

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