Asp.net mvc Razor将html标记嵌入基于文本的括号中
在服务器上,我正在设置ViewBag.Something=“您好” 这是一些简单的HTML代码:Asp.net mvc Razor将html标记嵌入基于文本的括号中,asp.net-mvc,razor,Asp.net Mvc,Razor,在服务器上,我正在设置ViewBag.Something=“您好” 这是一些简单的HTML代码: <tr> <td class="foo"> @("please highlight" + Html.Raw("<span style='color: yellow;'>) + ViewBag.Something + Html.Raw("</span>") + ", " + ViewBag.More)
<tr>
<td class="foo">
@("please highlight" + Html.Raw("<span style='color: yellow;'>) +
ViewBag.Something + Html.Raw("</span>") + ", " + ViewBag.More)
</td>
</tr>
@(“请突出显示”+Html.Raw(“)+
ViewBag.Something+Html.Raw(“”+“,“+ViewBag.More)
我的目标是看到Hello以黄色显示,我需要使用@(这里有各种字段)
使用上面的代码,我得到了这个错误的结果
please highlight < span style='color: yellow;'>Hello< /span>, More
请突出显示你好,更多信息
其中span标记在html页面上显示为文本
问题:在razor中,我需要做什么才能使SPAN标记在使用@(xxx)语法时成为真正的SPAN?以下内容应该足够了(虽然您的第一个示例也足够了,但我猜实际上还有更多内容,这样圆括号使代码语句更加明确):
请突出显示@(ViewBag.Something)
作为将来的参考,您可能会发现有用。您确定这就是您正在使用的代码吗?因为没有任何东西会导致HTML显示为原始,但也没有
@
调用服务器端处理,因此输出实际上应该说“ViewBag.Something”,而不是“Hello”“@David…我修复了@,但问题是我将显示为文本。然后,您的服务器/框架/等出现问题,或者有更多代码。老实说,第一个例子没有错。这是正常有效的HTML,只有一个解释值。@David我错了,我问错了问题。我猜我在尝试各种各样的场景,失去了重点。现在请看我的错误,我真正的问题是当我需要将包含各种变量的整行括起来时……在这种情况下(我重新编写了我的问题),将显示。您不需要将整行括起来,只需将需要作为C代码计算的部分括起来,在本例中,只需调用ViewBag.Something
。解析器足够聪明,能够理解其余部分应该按原样写入输出流。您不需要也不应该在@
块内有span
标记。
<tr>
<td class="foo">
please highlight <span style="color: yellow;">@(ViewBag.Something)</span>
</td>
</tr>