从Int转换为String

时间:2014-04-17 15:22:44

标签: c# asp.net-mvc

我有一个登录页面,Username是一个Integer的emaloyee ID。但是为了验证我的登录,我需要将其转换为字符串,但它会继续给我同样的错误。

我需要帮助:var user = db.EMPLOYEEs.Where(u => u.EMP_ID == model.EMP_ID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();

我已经尝试了所有这些,但是给我同样的错误:

string s = i.ToString();
string s = Convert.ToString(i);
string s = string.Empty + i;
string s = new StringBuilder().Append(i).ToString();

enter image description here


我在

上得到了另一个错误
serializeModel.roles = user.RoleROLE_ID; error: Cannot implicitly convert type 'int' to 'string[]'  

我想用这个做什么?

enter image description here

这是我的代码:

 [HttpPost]
        public ActionResult Login(LoginModel model, string returnUrl = "")
        {
            if (ModelState.IsValid)
            {
                int modelID = int.Parse(model.EMP_ID);
                var user = db.EMPLOYEEs.Where(u => u.EMP_ID == modelID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();
                    if ( user !=null)
                {
                    var roles = db.EMPLOYEEs.Select(m => m.RoleROLE_ID).ToArray();

                    CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel();
                    serializeModel.UserId = user.EMP_ID;
                    serializeModel.FirstName = user.EMP_FIRST_NAME;
                    serializeModel.LastName = user.EMP_LAST_NAME;
                    serializeModel.roles = user.RoleROLE_ID;

2 个答案:

答案 0 :(得分:1)

从屏幕上我会假设您应该转换u.EMP_ID,而不是model.EMP_ID

您也可以使用Int.Parse(model.EMP_ID)

为了保持其可读性和效率,我会选择:

int modelID = Int.Parse(model.EMP_ID);
var user = db.EMPLOYEEs.Where(u => u.EMP_ID == modelID && u.EMP_PASSWORD == model.EMP_PASSWORD).FirstOrDefault();

首先,您只解析一次。其次,你比较int s更快。

答案 1 :(得分:0)

将该转换从Where子句中拉出来:

string empID = Convert.ToString(model.EMP_ID);
var user = db.EMPLOYEEs
             .Where(u => u.EMP_ID == empID && u.EMP_PASSWORD == model.EMP_PASSWORD)
             .FirstOrDefault();