这是我的第一个MVC项目,所以我学到了很多东西。现在我得到一个错误,我不知道它来自哪里。我采用了默认的帐户控制器,并将其指向我自己的SQL数据库,如下所示。我把[Authorize]属性放在每个控制器上,这样只有登录页面可以被访问。一旦用户登录,它将允许他们访问所有页面,但它首先会重定向到此错误:MVC帐户控制器错误和LogOff不起作用
错误。 处理您的请求时发生错误。
此外,更改帐户控制器后,LogOff操作停止工作。我改变它如下所示,但它仍然无法正常工作。奇怪的是,这个错误并没有出现在昨天。我接近这个项目的最后期限,所以任何帮助将不胜感激,谢谢!
下面是修改的帐户控制器代码
//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
using (ixdb_siNet_ConfigurationEntities userdb = new ixdb_siNet_ConfigurationEntities())
{
var objUser = userdb.ixoc_Users.FirstOrDefault(x => x.name == model.UserName && x.password == model.Password);
if (objUser != null)
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Dashboard");
}
}
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
//
// POST: /Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
//AuthenticationManager.SignOut();
Request.Cookies.Remove("UserId");
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Dashboard");
}
以下是在 '/' 应用堆栈跟踪
服务器错误。你调用的对象是空的。说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。
源错误:
在当前web请求的执行过程中生成未处理的异常。关于异常的来源和位置的信息可以使用下面的异常堆栈跟踪来标识。
堆栈跟踪:
[NullReferenceException异常:对象没有设置为一个对象的一个实例。]在C siNetWebApplication.Controllers.DashboardController.Index(字符串的startDate,字符串结束日期):\梅林\顾客\堰\ Git \ siNetWebApplication \ siNetWebApplication \ Controllers \ DashboardController.cs:29 lambda_method(Closure,ControllerBase,Object [])+178 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary2 parameters)+241 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2参数)+38 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__36(IAsyncResult asyncResult,ActionInvocation innerInvokeState)+11 System.W eb.Mvc.Async.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)+138 System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3c()+111 System.Web.Mvc.Async。 <> c__DisplayClass45.b__3e()+452 System.Web.Mvc.Async。 <> c__DisplayClass30.b__2f(IAsyncResult asyncResult)+15 System.Web.Mvc.Async。 <> c__DisplayClass28.b__19()+37 System.Web.Mvc.Async。 <> c__DisplayClass1e.b__1b(IAsyncResult的asyncResult)241 System.Web.Mvc.Controller.b__1d(IAsyncResult的asyncResult,ExecuteCoreState innerState)29 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult的asyncResult)111的System.Web。 Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+53 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)+19 System.Web.Mvc.MvcHandler.b__4(IAsyncResult asyncResult,ProcessRequestState innerState)+51 System.Web。 Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)+111 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+606 System.Web.HttpApplication。ExecuteStep(IExecutionStep步骤,布尔型&已同步完成)+288
你能分享你得到的异常,而不是通用的错误消息吗?尝试使用调试器逐步执行代码,并查看是否可以确定错误发生的位置。 – Tobias 2014-10-11 20:01:15
只有在将它复制到IIS服务器并在线查看它之后,它才会在调试模式下发生。 – spacecowboy 2014-10-11 20:05:41
您使用的是什么版本的MVC? – nityan 2014-10-11 21:45:13