在TagBuilder中禁用属性值的HTML编码

时间:2011-10-08 21:41:02

标签: asp.net-mvc asp.net-mvc-3 tagbuilder

我正在使用MVC并且我已经创建了一个HtmlHelper扩展函数ImageLink。此函数使用两个TagBuilder对象来构建HTML图像链接(如<a><img/></a>)。

它工作正常,但现在我有一个页面,首先应确认图像按钮的操作。所以,我添加了一个onclick属性“javascript:return confirm('确认我');”作为onclick代码。

这呈现为:onclick =“javascript:return confirm('confirm me');”

我虽然这不起作用,但确实如此。但现在我们进入:

“javascript:return confirm('确认我\ r \ nnewline');”

这将呈现为:

onclick =“javascript:返回确认('确认我 换行');“

哪个不起作用。

我更希望TagBuilder不要编码任何东西,让我来处理它。但既然如此,我现在正在寻找一种方法来使其正常工作。

1 个答案:

答案 0 :(得分:2)

反斜杠(\)是C#字符串中的一个特殊字符,因此您只需要像在通常情况下那样在任何其他情况下进行转义,当您希望它出现在最终字符串中时。

tag.MergeAttribute("onclick", "return confirm('first line\\n\\nsecond line');");