如何調用的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