2012-07-25 35 views
1

Default.aspx的如何传递,并通过查询字符串检索HTML标签

<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>hello</p>&option1=option1&option2=option2&option3=option3&option4=option4&answer=answer&paper=paper"

我怎么可能通过使用jQuery这个查询字符串到下一页?我没有从下一页得到回复,这意味着question=<p>hello</p>没有得到价值。

Default2.aspx

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

我也试过encodeUriencodeURIcomponent

回答

1

首先感谢大家的努力。

这是我做过什么

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)

显示正确的值进行解码。

再次感谢您的帮助!

+0

通过添加它两次,你只隐藏html字符,以避免消息'潜在危险...',并且当你在页面上呈现它时,所有的准备好编码。我曾写过一次能做这份工作。 – Aristos 2012-07-25 07:51:24

+0

@Aristos感谢您的帮助!但是,它给我所需要的。 :-) – Ravi 2012-07-25 10:06:08

+1

我更愿意投票赞成可以帮助你的答案。 – Aristos 2012-07-25 11:57:44

-1

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

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

在接下来的页面加载

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

是的,你可以通过查询字符串来传递它们,你只需要通过编码使它们安全可靠,看看什么编码器说。 – Aristos 2012-07-25 07:52:58

2

你说你试试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?

+0

我已经通过'alert'检查过了,我在里面点击按钮写了javascript,并且我得到了问题=

hello

&option1 = option1&option2 = option2&option3 = option3&option4 = option4&answer = answer&paper = paper – Ravi 2012-07-25 06:52:13

+0

@coders好,现在使用'encodeURIcomponent',因为我输入并再次尝试 – Aristos 2012-07-25 06:58:32

+0

getting'从客户端检测到潜在危险的Request.QueryString值(output-question =“

Hello

”).' – Ravi 2012-07-25 07:01:35

相关问题