MVC 5 - VS Community 2015 - Маршрутизация не работает?
Это должно быть что-то простое, что мне не хватает, так как это моя первая попытка на MVC. Кажется, ничего не работает, кроме маршрута по умолчанию.
Это были мои шаги:
- Создайте новое решение из шаблона MVC5 (который поставляется с HomeController и Controller/Action/Id по умолчанию в RouterConfig.Configuration.
- Добавить -> Контроллер с именем Foo -> Создать ActionResult с именем Подробности
- Добавить представление с именем Details
- Запустите проект MVC
- Появляется домашняя страница, и я изменяю 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. Спасибо!)