Telerik グリッドを使用したフォームがあります。グリッド ツールバー内に、ポップアップ ウィンドウを開いて新しいレコードを挿入するカスタム ボタンがあります。
ウィンドウ内のサーバー/クライアント検証を使用したポップアップフォーム - 例に従い、シナリオに合わせて変更しました。ただし、アプリケーションを実行すると、次のエラーが発生します
ディクショナリに渡されたモデル アイテムは「Telerik.Web.Mvc.GridModel」タイプですが、このディクショナリには「Web.Models.OwnerViewModel」タイプのモデル アイテムが必要です。
以下は、グリッドをホストしているビューからの抜粋です
@using Telerik.Web.Mvc.UI
@{
ViewBag.Title = "Owner Listing";
}
@model Web.Models.OwnerViewModel
@{ Html.Telerik().Window()
.Name("Window")
.Title("Add New Owner")
.Content(@<text>
@using (Html.BeginForm("Create", "Owner", FormMethod.Post, new { id = "AddNewOwnerForm" }))
{
@Html.LabelFor(model => model.FullName)
@Html.EditorFor(model => model.FullName)
@Html.LabelFor(model => model.Telephone)
@Html.EditorFor(model => model.Telephone)
<div class="form-actions">
<button type="submit" class="t-button t-state-default">Save</button>
</div>
}
</text>)
.Width(400)
.Draggable(true)
.Modal(true)
.Visible(false)
.Render();
}
<div>
@(Html.Telerik().Grid<Web.Models.OwnerViewModel>()
.Name("Vehicles")
.ToolBar(commands => commands.Custom()
.Action("Create", "Owner")
.Name("btnAddNewOwner")
.Text("Add Vehicle")
.HtmlAttributes(new { id = "btnAddNewOwner" })
)
.DataKeys(keys => keys.Add(v => v.Id).RouteKey("Id"))
.Columns(columns =>
{
columns.Command(cmd =>
{
cmd.Edit().ButtonType(GridButtonType.Image);
}).Width(40);
columns.Bound(v => v.FullName).Width(150);
columns.Bound(v => v.Telephone).Width(150);
columns.Bound(v => v.Address).Width(150);
})
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("Index", "Owner")
.Update("Edit", "Owner"))
.Pageable(paging => paging.PageSize(10))
.Scrollable()
.Filterable()
.Sortable()
)
)
</div>
以下は、グリッドのコントローラー コードです。
[GridAction]
public ActionResult Index()
{
var owners = _ownerService.ListAll();
return View(new GridModel( owners ));
}
以下はCreateのコントローラコードです
public PartialViewResult Create()
{
SetSelectionLists();
var model = new OwnerViewModel();
return PartialView( "Create", model);
}
私はstackoverflowで同様の質問を見てきましたが、私が直面している問題に対処していないようです。正しい方向への助けや指針をいただければ幸いです。