【发布时间】:2018-08-04 13:02:24
【问题描述】:
这些错误出现在登录功能中。
UserInfo(v.user_name, v.user_fname, v.user_bloodGp, v.user_nationality, v.usertype, v.status, v.gender, v.usercnic, v.user_passport, v.mobilenumber);
v.user_passport、v.mobilenumber 带有下划线,并显示这些错误。
错误:参数 9:无法从 'string' 转换为 'int
错误:参数 10:无法从 'int' 转换为 'string'
红线显示在 v.user_passport、v.mobilenumber 下);两个参数。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(User User)
{
var v = db.Users.Where(modal => modal.user_name.Equals(User.user_name)).Where(modal => modal.user_passport.Equals(User.user_passport)).SingleOrDefault();
if (v != null)
{
UserInfo(v.user_name, v.user_fname, v.user_bloodGp, v.user_nationality, v.usertype, v.status, v.gender, v.usercnic, v.user_passport, v.mobilenumber);
return RedirectToAction("Index");
}
return RedirectToAction("Wrongpassword");
}
public ActionResult UserInfo(string user_name,string user_fname,string usercnic,string user_passport,string user_bloodGp,string user_nationality,string usertype,string status,int mobilenumber,string gender)
{
Session["user_name"] = user_name;
Session["user_fname"] = user_fname;
Session["user_cnic"] = usercnic;
Session["user_passport"] = user_passport;
Session["user_bloodGp"] = user_bloodGp;
Session["user_nationality"] = user_nationality;
Session["usertype"] = usertype;
Session["status"] = status;
Session["mobilenumber"] = mobilenumber;
Session["gender"] = gender;
return new EmptyResult();
}
【问题讨论】:
-
只是一个友好的建议: * 为什么UserInfo方法在返回值从不使用时返回ActionResult? (为什么它不返回 void?) * 为什么该方法采用冗长的参数列表而不是 User 对象本身? * 电话号码在逻辑上是一个字符串,而不是一个数字。 ('604' 和 '0604' 是不同的数字。) * 最后(但最重要的是),不要在数据库中以明文形式存储密码!改为使用适当的散列和加盐。
-
感谢您的建议。我已经注意到并做了一些更改。
标签: c# asp.net-mvc-4 session parameters