Visual Studio 2019创建ASP.NET MVC视图时代码生成器报错如何解决?
解决Visual Studio 2019中ASP.NET MVC视图生成错误:值-1超出范围0,2147483647
我之前也碰到过这个让人头疼的问题,折腾了好一阵才摸清楚几个靠谱的解决方向,分享给你试试:
排查模型类的数值属性
这个错误大概率和模型里的数值类型配置有关。比如你有没有给非可空的int属性设置了-1的默认值?或者数据库对应字段允许为null,但模型里用了非nullable的int类型?
举个例子,如果你的模型代码是这样的:public int OrderStatus { get; set; } = -1;可以改成可空类型规避这个问题:
public int? OrderStatus { get; set; }或者把默认值调整到0到2147483647的合法范围内。
清理重建项目,清除缓存
有时候是项目缓存搞的鬼,按这个流程操作试试:- 先关闭Visual Studio
- 删除项目根目录下的
bin和obj文件夹 - 重新打开项目,右键解决方案选择清理解决方案,接着执行生成解决方案
- 再尝试重新生成视图
检查EF Core的实体约束配置
如果你用了Entity Framework Core,看看Fluent API里有没有给数值字段设置不合理的默认值或约束:modelBuilder.Entity<YourEntity>() .Property(p => p.YourIntField) .HasDefaultValue(-1);把默认值改成合法范围内的数值,或者如果字段允许为null,加上
.IsRequired(false)配置。更新Visual Studio 2019的相关组件
旧版本的ASP.NET代码生成器可能存在bug,你可以打开Visual Studio的工具->获取工具和功能,检查并安装ASP.NET和Web开发模块的最新更新,之后再尝试生成视图。手动创建视图(临时替代方案)
如果上面的方法都没效果,你可以绕开代码生成器手动创建视图:- 在对应的Views子文件夹下新建
.cshtml文件 - 手动编写视图代码,比如强类型视图开头加上
@model YourProject.Models.YourModel,再自行添加表单、字段展示等内容
- 在对应的Views子文件夹下新建
内容的提问来源于stack exchange,提问作者Neal




