我试图让我的剃刀视图更有活力。 我试图在表格中为TD设置内联样式。
我做了字符串:
@{
double width = 100 / 5;
String widthStyleString = String.Format("style=\"width: {0}%;\"", width);
}
当我将其作为纯文本进行测试时,效果非常好。我得到了:
style="width: 20%;"
但是,当我尝试将其放入HTML元素时,我得到了这个:
<td class="table--td" style=""width:" 20%;"="">Some Value</td>
我怎么能让它不解析“作为实体?(它不会让我键入&amp; quot而不将它变成实际的”)
更新
这仍然是进行HTML属性的好方法。然而在这个例子中,它是一个样式标签,人们评论是正确的;最好是用css而不是逻辑来做。如果您有这个问题(样式属性),下面的堆栈帖子将对您有所帮助。否则,Html.Raw()很好。
Equal sized table cells to fill entire width of holding table
如果您不需要担心IE8及以下版本,该链接将解决此问题。否则你仍然需要在css中硬编码宽度百分比。
答案 0 :(得分:8)
您可以使用@Html.Raw
,因为@
函数会对输出进行HTML编码:
<td class="table--td" @Html.Raw(widthStyleString)>Some Value</td>
而不是:
<td class="table--td" @widthStyleString>Some Value</td>
答案 1 :(得分:2)
查看@Html.Raw()
你可以用你现有的东西做这样的事情:
<td class="table--td" @Html.Raw(widthStyleString)>Some Value</td>
我可能会研究一种生成字符串的更好方法。你可以创建自己的Html助手,它接受你的风格和你的内容的参数,然后输出到页面。这样做的好处是您的代码在一个地方(DRY)。
要考虑的另一件事是您使用内联样式。你真的没办法利用CSS的力量来实现你想要的吗?