0

ユーザー管理に使用している 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」方法が見つからないようです。

4

1 に答える 1