ASP.Net MVC Page выдает ошибку 404 для маршрута страницы - PullRequest
0 голосов
/ 05 октября 2018

Я новичок в MVC и должен работать над проектом, который уже сделан.и я пытаюсь добавить тестовую страницу Sime, но я продолжаю получать HTTP Error 404.0 - Not Found

Я следовал инструкциям от tutotial и т. д., но я продолжаю получать эту ошибку.

Что я сделал

Шаг 1 : на HomeController элемент управления я добавил новый ActionMethod

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

    return View();
}

Шаг 2: При щелчке правой кнопкой мыши на Test2() Для добавления вида Test2.cshtml

Шаг 3: Добавлена ​​простая разметка HTML на этой странице <h1> TEST2 PAGE</h1>

Скомпилирован проект, и после запуска проекта он открыл следующую страницу в браузере 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 }
            );

ОБНОВЛЕНИЕ:

Когда я создаю новый проект веб-приложения, я могу создать Test2 и запустить дажебез внесения изменений в RouteConfig.cs по умолчанию и страница работает хорошо.в то время как в проекте, который уже сделан, я не могу добавить новую страницу, следуя тому же методу

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Это довольно часто вызвано отсутствием следующего в файле web.config:

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

Проверьте также, отсутствует ли у вас Global.asax

0 голосов
/ 05 октября 2018
 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 "в вашем проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...