传递到字典中的模型项类型为"Telerik.Web.Mvc.GridModel",但此字典需要类型为"Telerik.Web.Mvc.GridModel"的模型项



我有一个Telerik网格。在网格工具栏中,我有一个自定义按钮,我想打开一个弹出窗口来插入新记录。

我在Window-Example中遵循了带有服务器/客户端验证的弹出表单,并对其进行了修改以适应我的场景。但是,运行应用程序会生成以下错误

传递到字典中的模型项的类型为"Telerik。网状物Mvc。GridModel",但此字典需要一个模型项类型为"Web"。模型。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 ));
    }

下面是创建的控制器代码

    public PartialViewResult Create()
    {
        SetSelectionLists();
        var model = new OwnerViewModel();
        return PartialView( "Create", model);
    }

我在stackoverflow上看到过类似的问题,但non似乎解决了我面临的问题。如果有任何帮助或指引正确的方向,我将不胜感激。

您需要将视图创建的模型设置为GridModel类型,并将其返回到GridModel

相关内容

最新更新