MVC助手是否对属性值进行编码?

时间:2009-11-27 22:50:03

标签: asp.net asp.net-mvc

 new{@class="Model.Class"}

2 个答案:

答案 0 :(得分:3)

是的,他们会对值进行编码。这样:

new{ @class = "a&b\"c" }

将属性呈现为class="a&b"c"

但是,我的示例中没有看到任何需要编码的内容。也许你的意思是“评价”,在这种情况下答案是否定的。要将Model中的Class属性的值放在对象中,只需删除引号,使表达式为代码,而不是字符串:

new{ @class = Model.Class }

答案 1 :(得分:1)

是。这就是我必须自己编写的原因。

例如在这种情况下可能会出现问题:

<input type="submit" value="Unicode characters go here." />

要摆脱这种行为,应该使用TagBuilder.ToString方法,或者使用RouteValueCollection来覆盖它们的行为。但是我会说使用基本字符串连接操作快速编写自己的帮助程序更简单。无论如何,结果是一个简单的文本输出。