Asp.net mvc 在asp.net MVC4中登录时获取对象空引用错误
嗨,我想为会员和管理员也做一个登录页面。。 在这里,我完成了以下代码: 在型号中:Asp.net mvc 在asp.net MVC4中登录时获取对象空引用错误,asp.net-mvc,Asp.net Mvc,嗨,我想为会员和管理员也做一个登录页面。。 在这里,我完成了以下代码: 在型号中: public class Login { public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } } <%@PageTitle=""Langua
public class Login
{
public int ID { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
<%@PageTitle=""Language="C#"Inherits="System.Web.Mvc.ViewPage<SHGManagementProject.Models.Login>"%>
<h2>Login</h2>
<%using (Html.BeginForm("Login", "Home", FormMethod.Post))
{ %>
<%:Html.ValidationSummary(true) %>
<fieldset>
<legend>Log in Form</legend>
<div>
UserName
<%:Html.TextBoxFor(m=>m.UserName) %>
</div>
<br/>
<div>
Password
<%:Html.PasswordFor(m=>m.Password) %>
</div>
<br/>
<div>
<inputid="SubmitLogin"type="submit"value="Login"/>
<%--<%:Html.ActionLink("Are you Member? click Here!!","Login","Account") %>--%>
</div>
</fieldset>
<%} %>
控制器
[HttpPost]
public ActionResult Login(Login login, MemberDetailsWrapper memberlogin)
{
WrapperDB db = new WrapperDB();
if (login.UserName.Equals("admin") &&login.Password.Equals("admin")) //This will check for admin
{
returnRedirectToAction("Index");
}
else if
(
(login.UserName.Equals(memberlogin.objMemberBasicInformation.MemberFirstName.Equals(db.MemberBasicInformationDBS.Where(a =>a.MemberFirstName.Equals(a.MemberFirstName))))
&& (login.Password.Equals(memberlogin.objMemberBasicInformation.Qualification.Equals(db.MemberBasicInformationDBS.Where(a=>a.Qualification.Equals(a.Qualification))))))
)
//This is For Member Login When Member Enter His FistName as a userName and Qualification as Password then Both credential match with the data present in db and return the respected person information
{
return RedirectToAction("Index","MemberDetails");
}
ModelState.AddModelError("", "UserName And Password is Incorrect!!");
return View();
}
视图中:
public class Login
{
public int ID { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
<%@PageTitle=""Language="C#"Inherits="System.Web.Mvc.ViewPage<SHGManagementProject.Models.Login>"%>
<h2>Login</h2>
<%using (Html.BeginForm("Login", "Home", FormMethod.Post))
{ %>
<%:Html.ValidationSummary(true) %>
<fieldset>
<legend>Log in Form</legend>
<div>
UserName
<%:Html.TextBoxFor(m=>m.UserName) %>
</div>
<br/>
<div>
Password
<%:Html.PasswordFor(m=>m.Password) %>
</div>
<br/>
<div>
<inputid="SubmitLogin"type="submit"value="Login"/>
<%--<%:Html.ActionLink("Are you Member? click Here!!","Login","Account") %>--%>
</div>
</fieldset>
<%} %>
登录
登录表格
用户名
m、 用户名)%%>
密码
m、 密码)%%>
在执行时,当我输入用户名并以管理员身份通过时,它将成功执行。。但当我输入另一个用户名和密码时,它会抛出错误NullReferenceException未经用户代码处理
请告诉我解决方案,并帮助我解决此问题,而不知道您的代码在哪里抛出错误,我假设问题归结为
memberLogin
参数
[HttpPost]
public ActionResult Login(Login login, MemberDetailsWrapper memberlogin)
{
WrapperDB db = new WrapperDB();
if (login.UserName.Equals("admin") &&login.Password.Equals("admin")) //This will check for admin
{
returnRedirectToAction("Index");
}
else if (memberlogin != null)
{
if
(
(login.UserName.Equals(memberlogin.objMemberBasicInformation.MemberFirstName.Equals(db.MemberBasicInformationDBS.Where(a =>a.MemberFirstName.Equals(a.MemberFirstName))))
&& (login.Password.Equals(memberlogin.objMemberBasicInformation.Qualification.Equals(db.MemberBasicInformationDBS.Where(a=>a.Qualification.Equals(a.Qualification))))))
)
{
return RedirectToAction("Index","MemberDetails");
}
else
{
ModelState.AddModelError("", "UserName And Password is Incorrect!!");
return View();
}
}
ModelState.AddModelError("", "UserName And Password is Incorrect!!");
return View();
}
我添加了一个对
memberlogin
的检查,以检查它是否为null
,但请仔细检查括号,因为我刚刚手动键入了此内容。您是否在调试程序中逐步检查了代码,以查看错误出现的位置?请参阅。最有可能的是memberlogin.objMemberBasicInformation.MemberFirstName
中的任何一个都是null
。指出导致错误的行