MVC 5 - VS Community 2015 - Маршрутизация не работает?

Это должно быть что-то простое, что мне не хватает, так как это моя первая попытка на MVC. Кажется, ничего не работает, кроме маршрута по умолчанию.

Это были мои шаги:

  1. Создайте новое решение из шаблона MVC5 (который поставляется с HomeController и Controller/Action/Id по умолчанию в RouterConfig.Configuration.
  2. Добавить -> Контроллер с именем Foo -> Создать ActionResult с именем Подробности
  3. Добавить представление с именем Details
  4. Запустите проект MVC
  5. Появляется домашняя страница, и я изменяю URL с

локальный:50212

в

локальный:50212/Foo/ Детали

Результат: я получаю 404

Это то, что MVC AreaRegistration не происходит автоматически во время компиляции?

Я пошел на Global.asax и попытался разместить на Application_Start

AreaRegistration.RegisterAllAreas();

Но это казалось бесполезным. Есть идеи? Это что VS сообщество 2015 чего-то не хватает? С уважением

Контроллеры /FooController.cs

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

namespace MvcTest.Controllers
{
    public class FooController : Controller
    {
        // GET: Foo
        public ActionResult Details()
        {
            return View();
        }
    }
}

Просмотров / Foo / Details.cshtml

@model MyModel

Hello

App_start из Global.asax

namespace MvcTest
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            AreaRegistration.RegisterAllAreas(); 
            //This up here is something I added manually after its byDefault scaffolding
            FilterConfig.Configure(GlobalFilters.Filters);
            RouteConfig.Configure(RouteTable.Routes);
        }

@Edit, добавлены FooController и Views / Foo / Details

@@ Edit: добавлены недостающие s в Details. Та же ошибка

@@@ Редактировать: поделиться Global.asax

1 ответ

Решение

Я начал с работы с шаблоном MVC 5, загруженным из онлайн-шаблона просмотра в окне "Добавить" -> "Новый проект".

Это не загружало вещи, которые @ john-h имел в своем проекте. Кажется, этого было недостаточно, и мне нужно было загрузить пакет MVC nuget для проекта. Или просто создайте webApp с опцией mvc вместо шаблона.

Теперь это работает.

(Но ваше решение помогло мне понять это @john-h. Спасибо!)

Другие вопросы по тегам