【问题标题】:How to pass a querystring with javascript and use it in codebehind page in asp.net?如何使用 javascript 传递查询字符串并在 asp.net 的代码隐藏页面中使用它?
【发布时间】:2014-05-13 06:50:04
【问题描述】:

目前我正在使用 JavaScript 在对话框中打开一个页面,如下所示。我通过将查询字符串加密到列表页面来传递它。

function Popup() {

        if (document.getElementById("<%= Amount.ClientID %>").value != "") {
            var xorKey = 13;
            var Obj = window;
            var id = document.getElementById("<%= id.ClientID %>").value + "-" + document.getElementById("<%= Amount.ClientID %>").value;

            var result = "";
            for (i = 0; i < id.length; ++i) {
                param += String.fromCharCode(xorKey ^ id.charCodeAt(i));
            }

            window.showModalDialog("list.aspx?id=" + param, Obj, "dialogWidth:800px; dialogHeight:500px; dialogLeft:252px; dialogTop:120px; center:yes");
        }

    } 

现在在页面后面的代码上我正在使用此代码:

string id = Request.QueryString[0].ToString();
            StringBuilder inSb = new StringBuilder(id);
            StringBuilder outSb = new StringBuilder(id.Length);
            char c;
            for (int i = 0; i < id.Length; i++)
            {
                c = inSb[i];
                c = (char)(c ^ 13); /// remember to use the same XORkey value you used in javascript
                outSb.Append(c);
            }
            string[] idvalue = outSb.ToString().Split('-');
            id = idvalue[0].ToString();

现在当使用Querystring[0] 时,我只得到十进制前的值,比如我在文本框中输入的值是13.33,那么我在列表页面上只得到13。有谁能够帮助我?

谢谢。

【问题讨论】:

  • 调用Popup后形成的最终URL是什么?
  • @HaseebAsif :对不起,我的错误是这个 localhost:6651/random/Page/list.aspx?id= #>>
  • 您需要对您的值进行 URL 编码。 w3schools.com/tags/ref_urlencode.asp

标签: javascript asp.net query-string


【解决方案1】:

在参数变量上使用转义如下

window.showModalDialog("list.aspx?id=" + escape(param), Obj, "dialogWidth:800px; dialogHeight:500px; dialogLeft:252px; dialogTop:120px; center:yes");

或encodeURI

window.showModalDialog(encodeURI("list.aspx?id=" + param), Obj, "dialogWidth:800px; dialogHeight:500px; dialogLeft:252px; dialogTop:120px; center:yes");

【讨论】:

    【解决方案2】:

    在将 URL 发送到服务器之前,使用 encodeURIComponent() 对其进行编码。

    http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp

    编辑:添加源链接。

    【讨论】:

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