c# - 模型状态错误 : The value 'null' is not valid for nullable field

标签 c# asp.net-mvc asp.net-core

由于可空字段为空,ModelState 会引发错误。

我有一个模型:

public class PersonModel
{
    public int? ID { get; set; }

    [Required]
    [StringLength(256)]
    public string Title { get; set; }

    [Required]
    [StringLength(256)]
    public string Name { get; set; }

    [Required]
    [StringLength(256)]
    public string Lastname { get; set; }

    [StringLength(1024)]
    public string Description { get; set; }

    public int? OrganizationID { get; set; }

    public string Organization { get; set; }

}

Controller :
var errors = ModelState.Where (c => c.Value.Errors.Count > 0).Select (c => c.Value).ToList ();

if (!errors.Any ()) {
    Person entity;

    if (model.ID.HasValue && model.ID > 0) {
        if (!Session.HasClaim (DataCache.Claims.EditPerson))
            return BadRequest ();

        entity = Repository.GetPerson (model.ID.Value);
    } else {
        if (!Session.HasClaim (DataCache.Claims.AddPerson))
            return BadRequest ();

        entity = new Person ();
        Repository.AddPerson (entity);
        if (!model.OrganizationID.HasValue && !string.IsNullOrEmpty (model.Organization)) {
            var organization = new Organization () {
                Title = model.Organization
            };
            Repository.AddOrganization (organization);
            entity.Organization = organization;
        }
    }

    TypeMapper.MapPersonModelToEntity (model, entity);
    Repository.Save ();
}
'errors'变量等于1。当我开始调试时,我看到this error

为什么ModelState发现错误? OrganizationId显然是 nullable field 。
我看到了 Topic在 stackoverflow 上但无法使用该解决方案,因为这里没有 Global.asax.net core .

最佳答案

您的代码正在尝试插入字符串数据 'null'在您的 nullable int领域OrganizationID .因为你的其他人不在这里,你自己弄清楚为什么OrganizationID字段正在获取一个字符串 'null'值而不是 null .可能是parsing的原因.

关于c# - 模型状态错误 : The value 'null' is not valid for nullable field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034324/

相关文章:

c# - 如何在 Avalonia 中绑定(bind)颜色

c# - ASP.Net,C# Web 应用程序,如何在客户端播放视频

asp.net-mvc - 仍然迷失在存储库和解耦,ASP.NET MVC

c# - 在 Entity Framework Core 中使用 Fluent API 编写范围数据注释

asp.net-core - .Net Core 2.0 NuGet 文件位置是什么

c# - 从 .NET Core 2.2 迁移到 3.0-preview-9 后模型绑定(bind)停止工作

c# - 将 LINQ 查询值传递给跨多个 View 屏幕共享的 View 布局

c# - SqlMembershipProvider Membership.GetUser 按名称失败

asp.net - 无法加载文件或程序集“System.Web.Mvc,版本=3.0.0.0,Elmah.MVC问题”

ASP.NET MVC、自定义错误和响应重写