这是我在代码段中的逻辑。
我正在尝试登录,如果数据来自网页,如果它与数据库匹配以继续允许登录
[HttpPost]//post method
public ActionResult Index(FormCollection collection)//using formcollection
{
var logindata = amcs.Logins.Where(a => a.Admin_Email_Id == collection["Admin_Email_Id"] && a.Admin_Password == collection["Admin_Password"]).SingleOrDefault();//compare string
if (logindata == null)//match data
{
return Redirect("/Contract/Login/index");//redirect if not match
}
else
{
Session["Emailids"] = collection["EmailId"];//add session
Session["Passwords"] = collection["AdminPassword"];
return Redirect("/Contract/Homepage/index");
}
}
答案 0 :(得分:0)
如果你得到NULL
,你有没有进一步了解它?
例如,
是什么值 amcs.Logins
中的数据是否包含属性与这些值匹配的对象?您可以悬停数据的鼠标并在调试器中查看它。
EDIT 回应评论:
在HTML中执行
<input type="text" id="Admin_Email_Id">
还有一个属性name="Admin_Email_Id"
?如果没有,则手动添加,例如
Html.TextBoxFor(m => m.Admin_Email_Id, new { name = "Admin_Email_Id", PlaceHolder = "EmailId"})
我很惊讶您需要这样做,但是值得检查HTML以检查name
是否存在。没有name
,在发布到控制器时,FormColleciton将没有缺少name