MVC Mapping ViewModel仅适用于int

时间:2016-03-04 23:10:27

标签: c# asp.net-mvc entity-framework visual-studio

以下是我的控制器代码的一部分:

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

CCstring时,我收到以下错误:

enter image description here

我在这里做错了什么?

3 个答案:

答案 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然后被改为键入字符串,之后它就无法工作了。我已经更新了数据库和所需的一切,但它仍然无法工作,直到完成重新启动 - 之后开始工作正常。