我收到如下所示的错误。在我的代码执行返回View()或返回重定向到操作之前,我得到了这种错误方式。
我设置了区域。我也在发布区域注册部分,以检查那里是否有任何问题。我检查了文件夹的拼写。一切都运行良好,直到有任何部分通过Entity Framework从数据库获取数据。我真的很困惑是什么导致了这个问题。
>应用程序中的服务器错误。无法找到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址:/ 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" }
);
}
}
如果我还需要分享其他任何内容以便更清楚地解决问题,请告诉我。
答案 0 :(得分:0)
更改全局asax中的默认路由,因为它正在“Home”控制器中查找不存在的“索引”方法。
从
更改您的操作属性 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
如果“登录”是您的默认页面
new { controller = "Home", action = "Login", id = UrlParameter.Optional },