Http 404 Not Found错误

时间:2015-06-12 09:31:26

标签: asp.net-mvc http-status-code-404

我创建了许多控制器,每个控制器都返回了许多视图。

输入网址后,视图会在浏览器上成功显示,例如: /本地主机:21419 /会计/索引

除了一个(名为OrderController)

之外,显示任何控制器视图的视图都没有问题

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

我进入页面显示的唯一一次是当我输入/ localhost:21419 / Order(显示索引页面)。 但是当我输入/ localhost:21419 / Order / Index时,我得到了同样的错误。我尝试创建一个新的动作方法和一个与之对应的视图,但是这个控制器下的所有视图都没有被渲染。可能是什么问题?

我的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");

似乎没有任何帮助。

2 个答案:

答案 0 :(得分:1)

关于你的路线配置。

这是一个基本的默认路线:

if (val >= 10 && val < 13) {
 arr[arr.length - 1].push(val);   
}
else if (val >= 13 && val < 16) {
 arr[arr.length].push([val]);   
}

我建议删除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"}

如果ID是可选的,并且您未在某些请求中发送new { controller = "Home", action = "Index", id = UrlParameter.Optional } 必要

如果您正在使用区域,最好像这样禁用id = UrlParameter.Optional

UseNamespaceFallback

答案 1 :(得分:0)

如果路由适用于其他控制器,则路由不会出现问题。你得到的是404,我怀疑你在Order部分下没有Index视图。单击views-&gt; Order并查看Index是否存在。如果不是,我们必须创建一个,或者我们需要进一步使用您的控制器代码。如果粘贴控制器代码,我可以进一步提供帮助。你粘贴的代码片段看起来很好。右键单击控制器并创建视图可能会将视图放在不同的文件夹中。