Я получаю ошибку, показанную ниже. Я получаю эту ошибку до того, как мое выполнение кода достигнет возврата View() или вернет перенаправление на действие.
У меня есть зоны. Я также размещаю раздел регистрации области, чтобы проверить, что там что-то не так. Я проверил варианты написания папок. Все работает нормально, пока не появится раздел, который получает данные из базы данных через Entity Framework. Я действительно смущен относительно того, что вызывает эту проблему.
Ошибка сервера в приложении '/'
Ресурс не может быть найден.
Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно.
Запрошенный URL: /Admin/Home/undefined
Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; ASP.NET> Версия: 4.0.30319.18408
Домашний контроллер под областью
[HttpGet]
[Authorize]
public ActionResult Show()
{
return View();
}
public ActionResult Login()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(string rememberMe, string UserName, string Password)
{
AuthenticateUser Authenticate = new AuthenticateUser();
if (Authenticate.isUserAuthentic(UserName, Password))
{
//the error page is rendered here ..
//even before reaching the return View portion or Redirect to action
FormsAuthentication.SetAuthCookie(UserName, false);
return RedirectToAction("Show");
}
else
{
return View();
}
}
DBCONTEXT DB = new DBCONTEXT();
public bool isUserAuthentic(string UserName, string Password)
{
bool Authentic = false;
admin_users User = DB.admin_users.SingleOrDefault(u => u.user_name == UserName);
if (User != null)
{
if (User.user_password == Password)
{
Authentic = true;
}
else
{
Authentic = false;
}
}
return Authentic;
}
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Show", id = UrlParameter.Optional },
namespaces: new[] { "ProjectName.Areas.Admin.Controllers" }
);
}
}
Пожалуйста, дайте мне знать, если есть что-то еще, что мне нужно поделиться, чтобы сделать проблему более ясной.
Измените свой маршрут по умолчанию в глобальном asax, потому что он ищет метод "Index" в вашем "домашнем" контроллере, который не существует.
изменить свое действие
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
к этому, если "Логин" является вашей страницей по умолчанию
new { controller = "Home", action = "Login", id = UrlParameter.Optional },