簡體   English   中英

Razor中的轉義符“ @”字符已傳遞給javascript

[英]Escape '@' character in Razor inside variable passed to javascript

我必須將電子郵件中的變量傳遞給javascript。 像這樣:

<button onclick="Send(email)">Send</button>

顯然,電子郵件變量中有'@'字符,我需要對此字符進行轉義,因為我收到此錯誤:“意外的令牌非法”

我讀了這些帖子: 在razor視圖引擎中使用 Escape @字符,在razor視圖引擎中使用Escape @字符,但是它們都無法解決我的問題。 我不知道我在做什么錯。

這些帖子幾乎涵蓋了我嘗試的所有內容:

<button onclick="Send(@email)">Send</button>

結果:按預期方式something@something.com =>相同的錯誤

{ 
 var str = email.Replace("@", ("@@"));
}
<button onclick="Send(@email)">Send</button>

結果:something @@ something.com =>相同的錯誤

<button onclick="Send(@:@email)">Send</button>

結果:服務器錯誤:“:”在代碼塊的開頭無效

{ 
 var str = email.Replace("@", "&#64;"));
}
<button onclick="Send(@email)">Send</button>

結果:something&64; something.com =>意外令牌非法

<button onclick="Send(@(email))">Send</button>

要么

<button onclick="Send(@(@email))">Send</button>

結果:按預期方式something@something.com =>相同的錯誤

<button onclick="Send(@@email)">Send</button>

結果:關閉一個。 '@'被轉義,這將呈現onclick =“ @ email”,但不幸的是不在變量email中。

我嘗試了其他各種選擇,但沒有任何效果。

<text></text>

和HttpUtility.Encode HttpUtility.JavascriptStringEncode HttpUtility.HtmlAttributeEncode Http.Raw也不起作用。

我將很高興為您提供任何建議。 真的想知道我在這里想念的是什么。 謝謝。

我認為您的問題不是Razor之一,而是JavaScript。 看來您需要在@email周圍@email引號,因為它是一個字符串,而JavaScript正在抱怨沒有該內容的內容,因為它是非法的。

<button onclick="Send('@email')">Send</button>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM