HTTP 404 未找到错误

Http 404 Not Found error

我创建了多个控制器,每个控制器 returns 有多个视图。

进入url后浏览器成功显示视图,例如: /localhost:21419/Accounting/Index

除了一个(名为 OrderController)之外的任何控制器视图显示视图都没有问题

对于这个 OrderController,当我在浏览器上输入 url 时出现 404 错误。例如:/localhost:21419/Order/Index。

唯一一次显示页面是在输入 /localhost:21419/Order 时(显示索引页面)。 但是当我输入 /localhost:21419/Order/Index 时,我得到了同样的错误。我尝试创建一个新的操作方法和一个与之对应的视图,但是正在呈现此控制器下的 none 个视图。可能是什么问题?

我的Global.asax.cs:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        RouteTable.Routes.MapHubs();
        AreaRegistration.RegisterAllAreas();
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
} 

我的RouteConfig.cs(我也添加了命名空间)

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    namespaces: new[] {"RRRPropPres.WebUI.Controllers"}
    );
}

单独一个控制器不起作用的原因可能是什么?

我试过了

return View();

return View("name of View");

似乎没有任何帮助。

如果路由在其他控制器上工作正常,则路由不会有问题。您收到 404,我怀疑您在订单部分下没有索引视图。点击 views->Order 并查看 Index 是否存在。如果不是,我们必须创建一个,否则我们需要进一步处理您的控制器代码。如果您粘贴控制器代码,我可以进一步提供帮助。您粘贴的代码片段看起来没问题。右键单击控制器并创建视图可能会将您的视图放在不同的文件夹中。

这都是关于你的路由配置。

这是一条基本的默认路由:

routes.MapRoute(
            "SomeName", // Route name
            "/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

我建议删除 namespaces: new[] {"RRRPropPres.WebUI.Controllers"}

你也最好像这样定义默认值:new { controller = "Home", action = "Index", id = UrlParameter.Optional }

如果 id 是可选的并且您不在某些请求中发送它 id = UrlParameter.Optional必需的

如果您正在使用区域,最好像这样禁用 UseNamespaceFallback :

routes.MapRoute(
        ...
    ).DataTokens["UseNamespaceFallback"] = false;