在Razor中将代码与标记混合

May*_*ank 2 razor asp.net-mvc-3

我们能做点什么吗

<tr id="prod<%:item.ProductId%>">
Run Code Online (Sandbox Code Playgroud)

在剃刀生产

我试过了

<tr id="prod@item.ProductId">
Run Code Online (Sandbox Code Playgroud)

这没用.它呈现<tr id="prod@item.ProductId"> 我正在寻找 -

<tr id="prod1234">
Run Code Online (Sandbox Code Playgroud)

Bui*_*ted 7

你必须使用@()你的特定模型值,如下所示:

<div id="prod@(item.ProductId)"></div>
Run Code Online (Sandbox Code Playgroud)

这样做的原因是因为它prod@item.ProductId看起来像是解析器的电子邮件地址,默认情况下解析器会尝试忽略电子邮件地址,因此您不必像john@@doe.com电子邮件那样愚蠢,因为电子邮件很常见,每次都很烦人.所以在剃刀解析器上工作的人只是想:"如果它看起来像电子邮件,就忽略它".所以这就是你遇到这个特殊问题的原因.