以下是我的控制器代码的一部分:
var userId = User.Identity.GetUserId();
var model = new IndexViewModel
{
HasPassword = HasPassword(),
PhoneNumber = await UserManager.GetPhoneNumberAsync(userId),
TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId),
Logins = await UserManager.GetLoginsAsync(userId),
BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId),
CC = db.Users.Single(x => x.Id == userId).CC
};
return View(model);
以下行仅在CC
类型为int
时才有效:
CC = db.Users.Single(x => x.Id == userId).CC
当CC
为string
时,我收到以下错误:
我在这里做错了什么?
答案 0 :(得分:2)
说实话,这与MVC或模型无关 - 它只是一个基本的C#问题。
您尝试将int
变量分配给只需string
的内容。如果您想将int
转换为string
,请致电ToString
:
CC = db.Users.Single(x => x.Id == userId).CC.ToString()
答案 1 :(得分:1)
如果属性总是返回数字数据,那么您可能需要转换为int
CC = Int32.Parse(db.Users.Single(x => x.Id == userId).CC);
顺便说一下,如果CC包含整数值,那么它的数据类型也应该是一个整数。
答案 2 :(得分:0)
我已经解决了。某处出现了故障 - 我不确定在哪里 - CC最初是一个int然后被改为键入字符串,之后它就无法工作了。我已经更新了数据库和所需的一切,但它仍然无法工作,直到完成重新启动 - 之后开始工作正常。