Razor语法在下划线后无法识别'@'

时间:2012-10-31 21:12:09

标签: asp.net-mvc razor

我正在尝试执行以下操作:

@foreach(var p in @Model.line_products){
<img class="small_img_@Model.line_products[i].short_name" src="/Content/images/@Model.line_products[i].image_name" />
}

哪个不起作用,它使文本按原样呈现,而不是识别'@'。我在Stackoverflow中找到了这个other post,它建议用以下方式添加括号:

@foreach(var p in @Model.line_products){
<img class="small_img_(@Model.line_products[i].short_name)" src="/Content/images/@Model.line_products[i].image_name" />
}

使用此解决方法,我得到我的ID呈现为small_img _( MODEL ATTRIBUTE )。是不是有一个不需要添加特定字符的解决方法? (例如括号)。

2 个答案:

答案 0 :(得分:3)

这里有比简单的下划线问题更多的错误。您不能在if中使用@Model。你已经在@ block了。只需使用@foreach(var p in Model.line_products)

另外,你编写括号的方式,它们将被渲染。你想要的是

small_img_@(Model.line_products[i].short_name)

答案 1 :(得分:1)

将括号放在@之后而不是之前:

class="small_img_@(Model.line_products[i].short_name)"