转义传递给javascript的变量中的Razor中的“@”字符
Escape '@' character in Razor inside variable passed to javascript
我必须将变量中的电子邮件传递给javascript。像这样:
<button onclick="Send(email)">Send</button>
显然,电子邮件变量中有"@"字符,我需要转义,因为我收到此错误:"意外令牌非法"
我读了这些帖子: 剃刀视图引擎中的转义@字符和剃刀视图引擎中的转义@字符,但它们都没有解决我的问题。我不知道,我做错了什么。
我用这些帖子尝试的几乎所有内容:
<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>
结果:某物&64;某物.com => 意外令牌非法
<button onclick="Send(@(email))">Send</button>
或
<button onclick="Send(@(@email))">Send</button>
结果:如预期的那样 something@something.com =>相同的错误
<button onclick="Send(@@email)">Send</button>
结果:关闭一个。"@"被转义,这是渲染onclick="@email",但不幸的是不在变量电子邮件中。
我尝试了其他各种选择,但没有任何效果。
<text></text>
和 HttpUtility.Encode HttpUtility.JavascriptStringEncode HttpUtility.HtmlAttributeEncode Http.Raw 似乎也不起作用。
我将很高兴得到任何建议。真的很想知道我在这里错过了什么。谢谢。
我认为
你的问题不是Razor的问题,而是JavaScript的问题。看起来你需要在@email
周围引号,因为它是一个字符串,而 JavaScript 在没有引号的情况下抱怨内容,因为它是非法的。
<button onclick="Send('@email')">Send</button>
相关文章:
- 使用RegExp查找url中的字符
- 根据页面的位置突出显示文本中的字符
- 替换模式忽略模式中的字符
- 替换HTML元素中的字符
- 仅IE8 html文本框中的字符
- 用类javascript包装span标记中字符串中的字符索引
- 替换.each语句中字符串中的字符
- 文本区域JavaScript中的字符限制-特殊情况
- 名称不能以''jquery-if-else条件中的字符
- 如何使用match返回字符串中的字符
- js中的字符计数器
- Selenium-检查变量中的字符
- 如何逃离“;jQuery代码中的“[”字符
- 如何删除↵JS字符串中的字符
- 使用 window.location.search 时,URL 中的字符会更改
- JavaScript 中的“@”字符
- 限制用户使用按键事件 injQuery 复制和粘贴声明为数字文本框的文本框中的字符
- 使用字符串数组中的字符填充 HTML 表
- 忽略字符串javascript中的字符
- 计算文本区域中的字符数