如何调用的Request.QueryString javascript函数内部,我使用asp.net和C#调用javascript函数内的Request.QueryString
var str=<%=Request.quesryString("val")%>
,但它给我错误
如何调用的Request.QueryString javascript函数内部,我使用asp.net和C#调用javascript函数内的Request.QueryString
var str=<%=Request.quesryString("val")%>
,但它给我错误
简短的回答:您可以“T。 <%= %>
块中的代码在服务器端进行评估,JavaScript代码在客户端进行评估。
长答案:您可以使用内联C#代码生成JavaScript代码,这有时确实有道理。但这与从JavaScipt函数调用C#代码不同。当然,你只能在.aspx/.cshtml等文件中执行此操作,而不能在.js文件中执行此操作,因为这些文件只能作为内容处理,而不能由ASP.NET解析。
[编辑]在你的情况没有必要反正打扰,因为你可以通过JS查询字符串反正看到How can I get query string values in JavaScript?
[EDIT2]:当然有关JavaScriptSerializer对方的回答是absoultely正确关于安全。如果您使用Razor视图引擎,事情会变得更加简单和安全,因为默认情况下它会转义字符串。但就像我说的,在具体的情况下,没有必要打扰任何一种方式。
如果这段JavaScript代码是内嵌在你的网页表单的正确方法是使用一个javascript serializer
:
<script type="text/javascript">
var str = <%= new JavaScriptSerializer().Serialize(Request.QueryString["val"]) %>;
alert(str);
</script>
决不做到以下几点,这是完全不安全的,您的网站容易受到XSS注入攻击:
<script type="text/javascript">
var str = '<%= Request.QueryString["val"] %>';
alert(str);
</script>
很棒,安全第一:) – 2013-03-28 10:57:06
凭借安全的在ASP NET请求主题...
您也可以ü se JavaScriptStringEncode()或AntiXSS library以防止您网站中的XSS。
您可以直接使用JavaScript来完成。
随着window.location.search
你得到充分的queryString像?item1=val1&item2=val2
你可以使用一些像
window.location.search.substr(1)
,并使用获得的查询字符串.split('&')
或子字符串函数获取de'val'键的值或另一个
虽然你是正确的,但QueryString在客户端是完全可调用的。无论它是在服务器还是客户端上执行,该调用都会产生相同的(和期望的)结果。 – mattytommo 2013-03-28 10:51:18
-1出于与上述相同的原因 – 2013-03-28 10:52:40
@mattytommo你误以为QueryString在客户端是完美可调用的。这是一个服务器功能。这样的服务器功能调用的结果可能会以生成的一段javascript的形式传递给客户端,正如该答案所述。 – James 2013-03-28 11:05:22