我正在使用someones代码进行分页。他的代码在MVC 2中,我希望它在MVC3 Razor中。问题在于语法。
下面是mvc中的代码需要有人来修改razor的语法。
问题出在这一行
IList<Customer> customers = (IList<Customer>)Model.Data;
//不能直接使用Model.Data。不接受通用类型。
IList<Customer> customers = (IList<Customer>)Model.Data;
foreach (Customer item in customers) { %>
<tr onclick="onRowClick(<%= item.ID %>)">
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.ID}) %> |
<%= Html.ActionLink("Delete", "Delete", new { id=item.ID })%>
</td>
<td>
<%= Html.Encode(item.ID) %>
</td>
<td>
<%= Html.Encode(item.FirstName) %>
</td>
</tr>
<% } %>
答案 0 :(得分:2)
该行可以这样翻译:
@ {
IList<Customer> customers = (IList<Customer>)Model.Data;
}
然后:
@foreach (Customer item in customers) {
<tr onclick="onRowClick(@item.ID)">
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.ID })
@:|
@Html.ActionLink("Delete", "Delete", new { id = item.ID })
</td>
<td>
@item.ID
</td>
<td>
@item.FirstName
</td>
</tr>
}
我也会从此迁移中受益以改进此代码。目前,您在视图中使用的循环很难看,可以用显示模板替换。
所以,在你的主视图中:
@Html.DisplayFor(x => x.Data)
和~/Views/Home/DisplayTemplates/Customer.cshtml
:
@model YourApp.Models.Customer
<tr onclick="onRowClick(@Model.ID)">
<td>
@Html.ActionLink("Edit", "Edit", new { id = Model.ID })
@:|
@Html.ActionLink("Delete", "Delete", new { id = Model.ID })
</td>
<td>
@Model.ID
</td>
<td>
@Model.FirstName
</td>
</tr>