代码之家  ›  专栏  ›  技术社区  ›  user9312590

无法从字符串转换为int?

  •  1
  • user9312590  · 技术社区  · 6 年前

    登录功能中会出现这些错误。

    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\u 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();
                }
    
    4 回复  |  直到 6 年前
        1
  •  2
  •   AMINCHAR    6 年前

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

    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);
    

    如果未使用命名参数,则在调用函数/方法时,必须始终注意参数的顺序

        2
  •  1
  •   simoha    6 年前

    您只能通过 v 变量到您的 UserInfo 函数,而不是传递所有这些参数

        3
  •  0
  •   AMINCHAR    6 年前

    您的mobilenumber声明为 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));
    
        4
  •  0
  •   user9405863    6 年前

    其运行时错误。字符串被传递到需要整数的变量,它试图将字符串转换为整数,导致转换异常无效。更正正在传递的参数的顺序。