我有一个网格,其中最后一列必须是一个按钮,重定向到我的控制器中的动作。
我必须更改页面以在Kendo网格中而不是在表格中显示数据。
我遇到的问题是如何将当前项的id传递给操作。
这是旧桌子
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<!--<td>
Html.DisplayFor(modelItem => item.UserName)
</td>-->
<td>
<a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-default btn-xs">Edit</a> |
<a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-default btn-xs">Delete</a>
</td>
</tr>
}
</table>
这是更新的一个
@(Html.Kendo().Grid<EndoIS.Models.UserViewModel>()
.Name("Videos")
.Columns(columns => {
columns.Bound(p => p.Name);
columns.Bound(p => p.LastName);
columns.Bound(p => p.Email);
})
.Pageable(pager => pager
.Messages(messages => messages.Display("{0} - {1} od {2} vrstic"))
.Messages(messages => messages.ItemsPerPage("rows per page"))
.Messages(messages => messages.Empty("No rows"))
)
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(datasource => datasource
.Ajax()
.ServerOperation(false)
.Read(read => read.Action("List", "UserAdmin"))
)
)
现在,我如何将旧表中的最后一列添加到此网格中,以便打开同一页面。
我找到了一种使用#= Id #
访问当前模型的简单方法,所以我这样做了
columns.Bound(p => p.Email).ClientHeaderTemplate("Edit").ClientTemplate(@"<a href='" + Url.Action("Edit") + "/#= Id #' class='btn btn-info btn-xs'>Edit</a>").Width(100);
可能有更好的方法来做到这一点,但我这样做,它的工作原理