使用 Knockout、MVC 和 Kendo 时,在控制器 'Web.Controllers.HomeController' 上未找到 public 操作方法 'undefined'

A public action method 'undefined' was not found on controller 'Web.Controllers.HomeController'., when using Knockout, MVC, and Kendo

我们有一个使用 Kendo 和 Knockout 的 MVC (.NET 4.5.1) 应用程序。 直到上周我们 将 Kendo 库从 2018 升级到 2020 时,它一直运行良好。 (2020.2.617).

现在,我们在 Application_Error 中一直遇到此错误 Global.asax:

A public action method 'undefined' was not found on controller 'Web.Controllers.HomeController'

这是导致问题的相关代码,我在应用程序的其他页面中 copy/paste 进行了测试,但我总是在 Global.asax 中遇到相同的错误。

<div id="divId" data-bind="kendoWindow: { isModal: true, widget: widget }">
    <textarea id="dummyId" data-bind="kendoEditor: { value: 'title', widget: editor} "></textarea>
</div>

<script type="text/javascript">
    var test = function () {
        var self = this;
        self.editor = ko.observable();
        self.widget = ko.observable();
    }

    ko.applyBindings(new test(), document.getElementById("divId"));

</script>

如果我删除了其中一个组件,KendoWindow 或 KendoEditor,它不会给出异常。

与 BundleConfig.cs 升级前相比,我们正在加载所有新的 kendo 库。

知道是什么原因造成的吗?如何解决?回到 Kendo 2018 年,不再是一种选择。

我刚刚看到 Kendo (2020.3.915) 的最新版本中有一个修复程序可以解决这个问题:

https://www.telerik.com/support/whats-new/kendo-ui/release-history/kendo-ui-r3-2020?_ga=2.175661665.2102584926.1606749571-1674673946.1605197457