У меня есть небольшое приложение MVC 3 - немного демонстрационной площадки.
У меня есть одна область, и она работает нормально.
Я только что добавил еще одну область, ожидающую, что приложение будет просто раскручиваться, и оно заработает, но нет, 404. Ресурс не найден.
Маршрут карты в AreaRegistration по умолчанию (как и первая область, которую я создал).
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Postcard_default",
"Postcard/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
Я попытался добавить в него определенный контроллер, но ничего.
Итак, я скачал RouteDebugger Фила Хаака, и мой маршрут был найден при наборе http://server/Postcard/Create (вот где я тоже пытаюсь его найти)
Структура Района
Мой контроллер
public class CreateController : Controller
{
private ILogger Logger { get; set; }
private ICardSender Emailer { get; set; }
private IOCCardRepository CardRepository { get; set; }
public CreateController(ILogger logger, ICardSender cardSender, IOCCardRepository repository)
{
this.Logger = logger;
this.Emailer = cardSender;
this.CardRepository = repository;
}
//
// GET: /Postcard/Create/
public ActionResult Index()
{
var model = new OCPostcardModel().Create();
return View(model);
}
СЕЙЧАС: я удалил всю область, попробовал еще раз, она не сработала. Поэтому я добавил в конкретный контроллер в маршруте (Inside AreaRegistration файл)
context.MapRoute(
"Postcard_default",
"Postcard/{controller}/{action}/{id}",
new { controller = "Create", action = "Index", id = UrlParameter.Optional }
);
И это работает ... Я не знаю, почему это не сработало, когда я делал это раньше, но сейчас.
Все еще любопытно, так как я не видел, чтобы кто-нибудь добавил этот контроллер в маршрут в какой-либо из демонстраций, на которые я смотрел - и у меня нет этого в моей другой области?