首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web 2不能注册用户

Web 2不能注册用户
EN

Stack Overflow用户
提问于 2014-04-14 09:08:07
回答 2查看 1.3K关注 0票数 1

我有一个使用MVC的Web 2项目。它使用实体框架。该实体框架对.edmx文件首先使用数据库方法。

该项目基于VS 2013 Express Web 2模板。我只是用了我自己的数据库。我没有修改任何帐户相关代码。但是,当我尝试注册一个新用户时,AccountController.cs中的以下语句会抛出异常:

代码语言:javascript
复制
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
    ...
    IdentityResult result = await UserManager.CreateAsync(user, model.Password);
    ...
}

例外情况是:

代码语言:javascript
复制
Cannot insert the value NULL into column 'Discriminator', table 'xxx.dbo.AspNetUsers'; column does not allow nulls. INSERT fails.
The statement has been terminated.

有谁可以帮我?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-16 20:24:43

昨天我升级了所有的NuGet包。其中,Asp.net标识被升级到2.0.0.0。

它神奇地起了作用。

所以我怀疑那是因为身份1.0中的一些错误

票数 0
EN

Stack Overflow用户

发布于 2014-04-14 09:16:44

答案就在你的身体里。

table 'xxx.dbo.AspNetUsers'; column does not allow nulls.

看起来,您试图从模型实例NULL中插入一个NULL值,其中数据库服务器中的表结构不允许接受NULL值。

尝试调试和检查,当请求出现时,您的模型实例是否正在正确创建。

我也能看到,你用:

代码语言:javascript
复制
IdentityResult result = await UserManager.CreateAsync(user, model.Password);

为什么用户不是模型的成员,比如密码属性?也许试着用:

代码语言:javascript
复制
IdentityResult result = await UserManager.CreateAsync(model.User, model.Password);

不管怎样..。我没有更多的信息,也没有想象,模型实例中包含了什么,您是如何从请求中绑定数据的。您应该查看调试器和调试非常好,以修复您的项目或提供更多的信息。

但是有一件事是很清楚的,那就是你试图在列中插入一个NULL值,它不接受NULL,所以你必须检查你的模型是如何绑定的。也许你的客户端应用程序没有正确发送一些论点,也许你把你的模型绑定错了,也许是别的什么.需要从您那里获得更多信息以帮助您,否则您应该仔细调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23056132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档