【问题标题】:Navigate a URL with Query string values on click of hyperlink在单击超链接时使用查询字符串值导航 URL
【发布时间】:2011-06-02 10:18:18
【问题描述】:

我有一个带有“电子邮件”和“密码”文本框以及“自动登录”复选框的控件。所有都是 Web 表单控件(不是 html 控件)。还有一个“登录”超链接。当我点击 heperlink 时,我想使用 NavigateUrl 属性移动到其他页面,如下所示:

NavigateUrl="~/DoLogin.aspx?email={0}&pwd={1}&autoLogin={3}"

如何传递以及如何获取查询字符串?

在此先感谢...

【问题讨论】:

  • 查询字符串中的密码?真的吗?

标签: c# query-string navigateurl


【解决方案1】:
private void btnSubmit_Click(object sender, System.EventArgs e)
{
Response.Redirect("Webform2.aspx?Email=" +
this.txtemail.Text + "&Pwd=" +
txtPassword.Text);
} 

现在进入下一页(Webform2.aspx)并在页面加载事件中编写此代码

private void Page_Load(object sender, System.EventArgs e)
{
string Email = Request.QueryString["Email"];
 string password = Request.QueryString["Pwd"];
} 

你也可以用这个

private void Page_Load(object sender, System.EventArgs e)
{
 string Email = Request.QueryString[0];
 string password = Request.QueryString[1];
}

将此值放在您想要的位置

【讨论】:

    【解决方案2】:

    最简单的方法是不使用超链接,而是使用按钮(或链接按钮)并进行回发,然后使用Response.Redirect("Url") 或更好的事件,直接处理登录。否则,您必须使用 javascript 收集您的数据。

    【讨论】:

      【解决方案3】:

      登录时点击编写此代码

      Response.Redirect("~/DoLogin.aspx?email=" + txtEmail.txt + "&pwd=" + txtPwd.text)
      

      【讨论】:

      • 如果密码中包含&符号怎么办? Server.UrlEncode() 需要放在两个字符串周围。虽然出于安全原因我还是建议这样做......
      【解决方案4】:

      我假设您这样做是因为您的 DoLogin 页面在 Page_Load? 中有一些登录代码?

      我真的不建议在 URL 中传递用户名/密码凭据。

      就像@Magnus 所说,最好将Hyperlink 更改为LinkButton 并将您的代码放在那里。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多