asp.net-mvc - 在tr中,不能将 Razor 值用作类值

  显示原文与译文双语对照的内容
0 0

在以下情况下使用 VB Razor 模板时遇到问题:


@ModelType IEnumerable(Of TrialLearning.Message)
@Code
ViewData("Title") ="Index"
End Code

<h2>Index</h2>

<p>
 @Html.ActionLink("Create New","Create")
</p>
<table class="table">
 <tr>
 <th> 
 @Html.DisplayNameFor(Function(model) model.MessageTo)
 </th>
 <th>
 @Html.DisplayNameFor(Function(model) model.MessageFrom)
 </th>
 <th>
 @Html.DisplayNameFor(Function(model) model.Message1)
 </th>
 <th></th>
 </tr>

@For Each item In Model
 @Code
 Dim readF As String =""
 If item.MessageRead = False Then
 readF="info"
 End If
 End Code

 <tr class="@readF">
 <td>
 @Html.DisplayFor(Function(modelItem) item.MessageTo)
 </td>
 <td>
 @Html.DisplayFor(Function(modelItem) item.MessageFrom)
 </td>
 <td>
 @Html.DisplayFor(Function(modelItem) item.Message1)
 </td>
 <td>
 @Html.ActionLink("Edit","Edit", New With {.id = item.MessageID}) |
 @Html.ActionLink("Details","Details", New With {.id = item.MessageID}) |
 @Html.ActionLink("Delete","Delete", New With {.id = item.MessageID})
 </td>
</tr>
Next

</table>

我正在使用 Razor 5和 3 。 大多数代码都是简单的scaffold代码。 我只需要根据 item.MessageRead 值的值更改 <tr>的类名。

tr中的类表示"需要>",</td> 表示"应输入标识符"和 <td> 表示"不是完整的语句。 使用行继续将该属性应用到下面的语句。"

如果有人也可以指向 Razor 语法的文档,那也会非常感谢。

时间: 原作者:

0 0

下面的工作很好。 上面的代码的问题是我在 <tr> 之前遗漏了"@"。 我也喜欢三元运算符在代码方面的作用。


@For Each item In Model
 @<tr class="@(IIf(item.MessageRead,"","info"))">
 <td>
 @Html.DisplayFor(Function(modelItem) item.MessageTo)
 </td>
 <td>
 @Html.DisplayFor(Function(modelItem) item.MessageFrom)
 </td>
 <td>
 @Html.DisplayFor(Function(modelItem) item.Message1)
 </td>
 <td>
 @Html.ActionLink("Edit","Edit", New With {.id = item.MessageID}) |
 @Html.ActionLink("Details","Details", New With {.id = item.MessageID}) |
 @Html.ActionLink("Delete","Delete", New With {.id = item.MessageID})
 </td>
 </tr>
 Next

也许应该在论坛上发帖询问帮助之前更注意我的代码。 :- )

原作者:
...