У меня есть простое приложение (http://myurl.com), и когда я набираю URL-адрес в адресной строке, меня перенаправляют на http://myurl.com/RBA/Login.
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl = null)
{
if (ModelState.IsValid)
{
try
{
if (!loginSuccessful)
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return RedirectToAction("Index", "Login");
}
else
{
return RedirectToAction("Index", "MyTickets");
}
}
catch (Exception ex)
{
log.Error(ex);
ViewBag.Message = "An error occurred";
throw;
}
}
return View(model);
}
Однако после входа в приложениеи когда я набираю http://myurl.com
, я получаю страницу ошибки со следующим сообщением:
The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/MyTickets/Index.cshtml
~/Views/MyTickets/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
Я ставлю точку останова на действие Index в MyTicketsController, и я могу достичь своей точки останова, но получаю то же самоеСообщение об ошибке. Чтобы устранить эту проблему, я скопировал папку MyTickets в области Views в области RBA и вставил ее в общую папку Views, и это сработало.
Мой вопрос заключается в том, почему я направлен в неправильное представление?Я знаю, что это как-то связано с маршрутизацией, и я был бы признателен за понимание этой проблемы. Спасибо
Это мои маршруты:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"RBA_default",
"RBA/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}