【问题标题】:how to pass and retrieve Html tags via querystring如何通过查询字符串传递和检索 Html 标签
【发布时间】:2012-07-23 12:40:22
【问题描述】:

Default.aspx

<script type="text/javascript">
    $(function() {
$("#add_questions").click(function() {
var question = $("#wmd-output").val();
var option1 = $("#option1").val();
var option2 = $("#option2").val();
var option3 = $("#option3").val();
var option4 = $("#option4").val();
var answer = $("#answer").val();
var paper = $("#txt_subject_id").val();
var dataString = 'question='+ question +'&option1='+option1 +'&option2='+option2 +'&option3='+option3 +'&option4='+option4 +'&answer='+answer+'&paper='+paper;

$("#flash").show();
$("#flash").fadeIn(400).html('<img src="../images/validate.gif" align="absmiddle">');
//alert(dataString)

$.ajax({
type: "GET",
url: "Default2.aspx",
data: dataString,
cache: false,
success: function(html){
$("#display").after(html);
//alert(html)
//document.getElementById('content').value='';
//document.getElementById('content').focus();
$("#flash").hide();
}
});
 return false;
});
});

</script>

dataString="question=p&gt;hello&lt;/p&gt;&amp;option1=option1&amp;option2=option2&amp;option3=option3&amp;option4=option4&amp;answer=answer&amp;paper=paper"

如何使用 jquery 将此查询字符串传递到下一页?我没有从下一页得到响应,这意味着 question=&lt;p&gt;hello&lt;/p&gt; 没有获得价值。

Default2.aspx

Dim question As String
question = Request.QueryString("question")
Response.Write(question)

我也试过encodeUriencodeURIcomponent

【问题讨论】:

    标签: javascript jquery asp.net vb.net query-string


    【解决方案1】:

    您说您尝试了encodeURIcomponent,但恐怕您将其应用在全行。您必须将encodeURIcomponent 单独应用于每个值以使其工作:

    var dataString = 'question='+ encodeURIcomponent(question) +'&option1='+ 
      encodeURIcomponent(option1) +'&option2='+ encodeURIcomponent(option2) +'&option3='+ 
       encodeURIcomponent(option3) +'&option4='+ encodeURIcomponent(option4) +'&answer='+ 
         encodeURIcomponent(answer)+'&paper='+ encodeURIcomponent(paper);
    

    另外,您是否检查过您从 var question = $("#wmd-output").val(); 读取的值? "#wmd-output" 是正确的还是您需要添加呈现的客户端 ID?

    【讨论】:

    • 我已经通过 alert 进行了检查,我在按钮单击 javascript 中编写了它,我收到了 question=

      hello

      &option1=option1&option2=option2&option3=option3&option4=option4&answer =answer&paper=paper
    • @coders 很好,现在使用encodeURIcomponent,因为我已经输入了,然后再试一次
    • 获取A potentially dangerous Request.QueryString value was detected from the client (output-question="&lt;p&gt;Hello&lt;/p&gt;").
    • @coders 这是第一个警告你要渲染的内容 - 使用 htmlEncode 渲染它,并禁用此警告 stackoverflow.com/questions/10717703/…
    【解决方案2】:

    首先感谢大家的努力。

    这就是我所做的

    question=encodeURIComponent(question)
    var dataString = 'question='+ encodeURIComponent(question) +'&option1='+ option1 +'&option2='+ option2 +'&option3='+ option3 +'&option4='+ option4 +'&answer='+ answer +'&paper='+ paper;
    

    我使用了两次encodeURIComponent,在服务器端解码时

    quest = Server.UrlDecode(question)

    显示正确的值。

    再次感谢您的帮助!!

    【讨论】:

    • 通过添加两次,您只会隐藏 html 字符以避免出现“潜在危险...”消息,并且当您在页面上呈现它时,它已全部准备好编码。一次怎么能像我写的那样完成这项工作。
    • @Aristos 感谢您的帮助!但是,它给了我需要的东西。 :-)
    【解决方案3】:

    恐怕你不能通过查询字符串传递 HTML。您可以改用 Session。您可以将 HTML 存储在字符串变量中并将其存储在 Session 中。在下一页,您可以从 Session 中检索它。

    Session.Add("myHTML","<p></p>");
    

    在下一页加载

    String html = Session["myHTML"].ToString();
    

    【讨论】:

    • 是的,您可以通过查询字符串传递它们,您只需要通过对它们进行编码使它们的 url 安全,看看编码人员怎么说。
    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多