无法从字符串转换为 int?

Cannot convert from string to int?

登录函数中出现这些错误。

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_passportv.mobilenumber 带有下划线并且显示了这些错误。

Error: Argument 9: Cannot convert from 'string' to 'int

Error: Argument 10:Cannot convert from 'int' to '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();
            }

您的手机号码声明为int,您正试图传递一个string,请在拨打UserInfo

时进行转换
UserInfo(v.user_name, v.user_fname, v.user_bloodGp, v.user_nationality, v.usertype, v.status, v.gender, v.usercnic, v.user_passport, int.Parse(v.mobilenumber));

您没有按正确的顺序传递参数,请将您的调用修改为:

UserInfo(v.user_name, v.user_fname, v.usercnic, v.user_passport, v.user_bloodGp, v.user_nationality, v.usertype, v.status,  v.mobilenumber, v.gender);

如果您不使用命名参数,则在调用 function/method

时必须始终注意参数的顺序

您可以只将 v 变量传递给您的 UserInfo 函数,而不是传递所有这些参数

它的 run-time 错误。字符串被传递给需要整数的变量,并且它试图将字符串转换为整数导致无效转换异常。更正传递参数的顺序。