ASP.NET Routing - HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей) мог быть удален - PullRequest
0 голосов
/ 15 октября 2018

Я просмотрел множество других вопросов, но не могу найти решение.

Работаю над чем-то в новой компании, которая требует от меня использования ASP.NET, я из LaravelPHP-мир, в котором маршрутизация чем-то похожа, поэтому маршрутизация ASP.NET не кажется чуждой.

Я пытаюсь настроить базовые страницы для нового сайта и сначала запустить маршруты, вот что яhave:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

        routes.MapRoute(
            name: "About",
            url: "about-us",
            defaults: new { controller = "About", action = "Index" }
        );

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

В Laravel это не похоже на то, что я делал бы, кроме маршрута по умолчанию.

В моем заголовке у меня есть базовая навигация:

 <ul>
     <li><a href="@Url.RouteUrl("Root")">Home</a></li>
     <li><a href="@Url.RouteUrl("About")">About Us</a></li>
 </ul>

У меня есть файл AboutController и индексный файл в Views / About.

Дом / маршрут работает нормально, но URL / about-us возвращает:

The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /about-us

В чем моя ошибка здесь?Если при переходе по URL-адресу я не зарегистрировал маршрут, то я получаю другую ошибку 404, поэтому я, по крайней мере, выбираю маршрут.

Если я меняю контроллер для своего маршрута About на контроллер Home.это не возвращает ошибку.

Это AboutController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace leadstream.co.uk.Controllers
{
    public class AboutController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

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