Kendo ui 剑道MVC助手“;路由();生成错误的URL

Kendo ui 剑道MVC助手“;路由();生成错误的URL,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正在尝试定义一个自定义剑道网格工具栏命令,使用剑道路由()MVC帮助程序,如中所示 @(Html.Kendo().Grid(Model.Imports) .Name("ImportsGrid") .ToolBar(tb => tb.Custom().Route("DataImportData", new { tableType = DataTablesTypeEnum.MyTables, id = Model.TableName }).Text("Import Data")) 但是生成

我正在尝试定义一个自定义剑道网格工具栏命令,使用剑道路由()MVC帮助程序,如中所示

@(Html.Kendo().Grid(Model.Imports)
.Name("ImportsGrid")
.ToolBar(tb => tb.Custom().Route("DataImportData", new { tableType = DataTablesTypeEnum.MyTables, id = Model.TableName }).Text("Import Data"))
但是生成的URL是不正确的-它最终与包含网格的页面的URL相同,这表明它无法以某种方式找到路由

然而。。。当我像这样使用Url.RouteUrl()方法时

@{ var url = Url.RouteUrl("DataImportData", new { tableType = DataTablesTypeEnum.MyTables, id = Model.TableName });}
@(Html.Kendo().Grid(Model.Imports)
        .Name("ImportsGrid")
        .ToolBar(tb => tb.Custom().Url(url).Text("Import Data"))
生成了正确的URL

我的路线定义如下:

            routes.MapRoute(
            name: "DataImportData",
            url: "{controller}/{tableType}/{id}/Import",
            defaults: new { controller = "Data", action = "ImportData" },
            namespaces: new[] { "MyApp.MyNamespace" }
            );

这是剑道的已知问题还是我做错了什么?

事实证明,问题在于动作被指定为默认动作,而不是参数。如果我使用Kendo route()方法在路由数据中包含该操作,则该路由是正确匹配的

.ToolBar(tb => tb.Custom().Route("DataImportData", new { action="ImportData", tableType = DataTableTypeEnum.MyTables, id = Model.TableName }).Text("Import Data"))
我还发现,至少在本例中,我可以简单地使用Action方法并直接指定Action(“ImportData”),如中所示

.ToolBar(tb => tb.Custom().Action("ImportData", "Data", new { tableType = DataTableTypeEnum.MyTables, id = Model.TableName }).Text("Import Data"))
并且路由与预期URL正确匹配