ASP.Net MVC页面给出404错误的页面路由

时间:2018-10-05 13:52:19

标签: asp.net-mvc routes

我是MVC的新手,必须从事一个已经完成的项目。而且我正在尝试添加一个sime测试页,但我不断收到HTTP Error 404.0 - Not Found

我遵循了tututial等的指示,但我不断收到此错误。

我做了什么

步骤1 :在HomeController控件上,我添加了新的ActionMethod

public ActionResult Test2()
{
    ViewBag.Message = "Your contact page.";

    return View();
}

第2步:开右键单击Test2()以添加视图Test2.cshtml

步骤3:在此页面<h1> TEST2 PAGE</h1>

上添加了简单的HTML标记

编译项目,并在运行项目后在浏览器http://localhost:54363/Home/Test2中打开以下页面,并显示以下错误

  

HTTP错误404.0-找不到所需的资源   已删除,更名或暂时不可用。

我甚至将以下路由添加到RouteConfig.cs页面

    routes.MapRoute(
    name: "test2",
     url: "Test2",
            defaults: new { controller = "Home", action = "Test2", id = UrlParameter.Optional }

    );

也尝试了不同的路线

routes.MapRoute(
                name: "Test2",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Test2", id = UrlParameter.Optional }
            );

似乎无法解决所有问题,为什么不确定为什么不打开新页面始终对所有路径给出404错误

http://localhost:54363/Home/Test2

http://localhost:54363/Test2

我不确定我在做什么错。

路线顺序

  routes.MapRoute(
            name: "indexTest",
             url: "IndexTest/",
                    defaults: new { controller = "Home", action = "IndexTest", id = UrlParameter.Optional }

            );
            routes.MapRoute(
            name: "test2",
             url: "Test2",
                    defaults: new { controller = "Home", action = "Test2", id = UrlParameter.Optional }

            );


            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

更新:

当我创建一个新的Web应用程序项目时,即使不更改默认RouteConfig.cs也可以运行Test2并运行,并且页面运行良好。在已经完成的项目中,我无法按照相同的方法添加新页面

2 个答案:

答案 0 :(得分:0)

 routes.MapRoute(
            name: "test2",
            url: "Test2",
            defaults: new { controller = "Home", action = "Test2" }
        );

并将[HttpGet]关键字添加到您的操作

[HttpGet]
public ActionResult Test2()
{
    ViewBag.Message = "Your contact page.";

    return View();
}

我认为这对您有用。

您的Test2.cshtml视图文件必须在项目的此路径“ View-> Home-> Test2”下。

答案 1 :(得分:0)

这通常是由于web.config中缺少以下内容引起的:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 

还要检查您是否没有Global.asax