无法比较asp.net中的字符串c#

时间:2015-08-06 08:47:16

标签: c# asp.net-mvc

这是我在代码段中的逻辑。

我正在尝试登录,如果数据来自网页,如果它与数据库匹配以继续允许登录

[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");
    }
}

1 个答案:

答案 0 :(得分:0)

如果你得到NULL,你有没有进一步了解它?

例如,

是什么值
  • 集合[ “Admin_Email_Id”]
  • 集合[ “ADMIN_PASSWORD”]

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

的值