【发布时间】:2015-01-09 16:42:28
【问题描述】:
我必须将变量中的电子邮件传递给 javascript。像这样的:
<button onclick="Send(email)">Send</button>
显然电子邮件变量中有'@'字符,我需要转义,因为我收到此错误:“意外令牌非法”
我读过这些帖子:Escape @ character in razor view engine 和Escape @ character in razor view engine 但他们都没有解决我的问题。我不知道,我做错了什么。
我在这些帖子中尝试的几乎所有内容:
<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("@", "@"));
}
<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 似乎也不起作用。
我会很高兴得到任何建议。真的很想知道我在这里缺少什么。谢谢你。
【问题讨论】:
标签: javascript c# html razor escaping