我有一个登录页面,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();
我在
上得到了另一个错误serializeModel.roles = user.RoleROLE_ID; error: Cannot implicitly convert type 'int' to 'string[]'
我想用这个做什么?
这是我的代码:
[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;
答案 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();