【问题标题】:Controller rename in core 1.1 results in 404 error核心 1.1 中的控制器重命名导致 404 错误
【发布时间】:2017-09-09 13:42:10
【问题描述】:

在一个正常工作的 Core 1.1 Web 应用程序中,我重命名了一个控制器。控制器 url 是从代码 sn-p 中的引导弹出窗口调用的:

    $('.main-select').on('shown.bs.popover', function () {
        $('.submit').click(function () {
            var fromval = $('.popover #fromvalue').val();
            var toval = $('.popover #tovalue').val();
            var option = {
                url: "/ProductMixController/GetDateData?dStart=" + fromval + "&" + "dEnd=" + toval,
                data: JSON.stringify({ dStart: fromval, dEnd: toval }),
                method: 'post',
                dataType: 'json',
                contentType: 'application/json;charset=utf-8'
            };

            window.location.href = option.url;

最初的控制器名称是 ProductMixSS 并且按预期工作。为了遵循 MS 命名约定,我将其重命名为 ProductMixController。结果是一致的 404 错误。控制器和模型代码没有改变,所有缓存都被清除了——我知道的那些,甚至是 NuGet——拼写检查和双重检查,配置文件已经检查,端口号已经改变,甚至盒子已经被重新启动。

我看到了一些对这个“错误”的引用,但似乎没有解决我看到的相同问题。

所以见鬼。

【问题讨论】:

    标签: asp.net-core-1.1


    【解决方案1】:

    问题在于,根据长期存在的 MVC 规则和规定,控制器类必须在其名称中包含“Controller”后缀才能路由到类似名称的操作。如果您没有通过编写自己的路由来遵循此约定,您将遇到同样的问题。 .Net Core 稍微放宽了这个 reg,现在可以根据需要放置模型、控制器、视图文件。但是,在类名中添加“Controller”后缀似乎仍然遵循原始 MVC 编译和执行路径。

    哇。这是为期两天的困惑练习。

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2013-10-19
    • 2012-12-03
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    相关资源
    最近更新 更多