Этот ресурс не может быть найден. Запрашиваемый URL: / Площадь / Контроллер / Не определено

1

Я получаю ошибку, показанную ниже. Я получаю эту ошибку до того, как мое выполнение кода достигнет возврата 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" }
        );
    }
}

Пожалуйста, дайте мне знать, если есть что-то еще, что мне нужно поделиться, чтобы сделать проблему более ясной.

Теги:
entity-framework
asp.net-mvc

1 ответ

0

Измените свой маршрут по умолчанию в глобальном asax, потому что он ищет метод "Index" в вашем "домашнем" контроллере, который не существует.

изменить свое действие

 new { controller = "Home", action = "Index", id = UrlParameter.Optional },

к этому, если "Логин" является вашей страницей по умолчанию

 new { controller = "Home", action = "Login", id = UrlParameter.Optional },

Ещё вопросы

Сообщество Overcoder
Наверх
Меню