我正在使用带有MVC3和ASP.NET4.5的Razor
我需要在HTML电子邮件中显示jim@bloggs.com。
由于电子邮件客户端添加mailto到电子邮件地址的链接的问题,我需要更改它们以防止这种情况发生。一个建议是添加不存在的标签,例如< z>。我试过了:
@(username.Replace("@","<z>@</z>"))
但是这会输出:
jim<z>@</z>bloggs.com
如何确保在HTML中获得以下内容:
jim<z>@</z>bloggs.com
我怀疑有些调整:
@(username.Replace("@","<z>@</z>"))
就是答案。提前谢谢。
答案 0 :(得分:1)
您应该使用@Html.Raw()
方法,因为默认情况下在Razor中打开字符串转义。
@Html.Raw(username.Replace("@","<z>@</z>"))
虽然这个问题会有安全方面的考虑因素,因为它是一个潜在的XSS漏洞,因此您最好先删除用户名的初始值,然后再应用您的代码插入。