【问题标题】:Kendo UI Grid in MVC - How to return selected row Item to ControllerMVC 中的 Kendo UI Grid - 如何将选定的行项返回给控制器
【发布时间】:2013-05-09 17:51:25
【问题描述】:

我有一个带有 Kendo UI 网格的 MVC 4 应用程序,用于用户管理。我在网格中显示用户信息,并有一个自定义命令按钮,单击该按钮会打开一个新页面来编辑用户信息。由于各种原因(一个是要编辑的信息太多,无法在网格中显示),我需要在新页面上编辑用户,而不是使用内联、弹出或内嵌编辑。我的网格看起来像这样......非常简单

@(Html.Kendo().Grid<WebSiteNew.Models.ManageUsersViewModel>()
.Name("grid")
.HtmlAttributes(new { style = "margin-top: 5px" })
.Columns(c =>
{
    c.Bound(model => model.UserName);
    c.Bound(model => model.FirstName);
    c.Bound(model => model.LastName);
    c.Bound(model => model.Email);
    c.Bound(model => model.Phone);
    c.Bound(model => model.Extension);
    c.Bound(model => model.JobTitle);
    c.Command(com => { com.Custom("Edit").Click("edit"); com.Destroy(); });
})
.Pageable()
.Sortable()
.Selectable()
.DataSource(d => d
    .Ajax()
    .PageSize(20)
    .Model(m => m.Id(i => i.UserName))
    .Read(r => r.Action("ManageUsers_Read", "ManageUsers"))
    .Destroy(o => o.Action("ManageUsers_Destroy", "ManageUsers"))
))

我在这里遇到的问题是,我需要将单击编辑按钮的用户的 ID 传递到编辑屏幕,以便我可以显示所选用户的信息。我知道获取此信息的唯一方法是通过 javascript,在我的命令按钮单击功能中类似这样...

function edit() {
    var grid = $("#grid").data("kendoGrid");
    var row = grid.select();
    var dataItem = grid.dataItem(row);
    var id = dataItem.UserId;

    location = "@Url.Action("EditUser")";
}

这为我提供了我需要的 id,但我无法(据我所知)将其传递回我的控制器。所以我的问题是......我如何将这些信息返回到服务器端?是否有其他方法可以获取我需要的信息,或者这只是 Kendo UI MVC 中无法实现的?

为了让这个问题更笼统......当我查看 Kendo UI 文档时,它告诉我如何在 javascript 中获取一个值......一般来说,如何在 MVC 应用程序中使用这个值服务器端什么时候需要它?我似乎在他们的文档中找不到替代的“MVC”方式来做到这一点。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 kendo-ui kendo-asp.net-mvc


    【解决方案1】:

    你应该为url字符串形成额外的参数:

    location = "@Url.Action("EditUser")" + "?id="+id;
    

    【讨论】:

    • 谢谢,这正是我需要的。
    • 这是一种方法,但是如果您不想将 id 暴露给控制器怎么办?还有其他方法可以做到这一点,例如将整个数据项从参数传递给控制器​​?
    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2014-04-21
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多