Telerik MVC Grid:Ajax DataBinding 发布附加参数



我创建了一个支持编辑多个实体的页面。
此页面的调用方式如下: http://localhost/Personnel/EditMultiple?id=2944&id=7

在此页面上有一个 GridView,它应该在网格中列出这些人员。此网格的定义如下:

<% Html.Telerik().Grid<Web.Models.PersonnelMiniVM>()
    .Columns(columns =>
    {
        columns.Bound(p => p.Name);
    })
    .DataBinding(d => d.Ajax().Select("_GetPersonnelByIds", "Personnel", new { personnelIds = string.Join(",", Model.PersonnelIds) }))
    .Pageable(page => page.PageTo(Model.Page))
    .Sortable(sorting => sorting.OrderBy(sortOrder => sortOrder.Add(p => p.Name)))
    .Render();
%>

但是当我查看发布到人事控制者的 URL 时,它就像:

http://localhost/Personnel/_GetPersonnelByIds/2944%2c7?personnelIds=7%2C2944&Personnel-size=5

我不明白的是,为什么附加 2944%2c7,当 URL 太长时,这也给了我一个 401 错误。

Global.asax 中定义的路由如下所示:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

如何解决这个问题?

看到这个:

http://www.telerik.com/community/forums/aspnet-mvc/grid/mvc3-grid-control-ajax-bound-select-url-has-extra-route-values.aspx

解决方案是清除 id,例如:

.DataBinding(d => d.Ajax().Select("_GetPersonnelByIds", "Personnel", new { id= "", personnelIds = string.Join(",", Model.PersonnelIds) }))

最新更新