使用与数组MVC的模型绑定插入值时,Null列属性

本文关键字:Null 属性 插入 绑定 数组 MVC 模型 | 更新日期: 2023-09-27 18:16:28

这是我的控制器:

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ARCCreate(M_ARC[] arcs)
    {
        foreach (M_ARC item in arcs)
        {
            string Year = item.EmailSPDT.ToString().Split('/')[2].Split(' ')[0];
            string Month = item.EmailSPDT.ToString().Split('/')[1];
            int cek = int.Parse(Year + Month);
            ModelState.Remove("Periode");
            item.Periode = cek;
            if (ModelState.IsValid)
            {
                db.Arcs.Add(item);
            }
            else return View();
        }
        db.SaveChanges();
        return RedirectToAction("ARCIndex");
    }

It is part of my View:

                <input type="text" name="arcs[0].InformasiBankDT" class="informasiBankDT" />
                    <input type="hidden" name="arcs[0].Periode" value="201408" />
                    <input type="hidden" name="arcs[0].CreateID" value="@Session["UserID"]" />
                    <input type="hidden" name="arcs[0].UpdateID" value="@Session["UserID"]" />
                    <input type="hidden" name="arcs[0].CreateDT" value="@DateTime.Now" />
                    <input type="hidden" name="arcs[0].UpdateDT" value="@DateTime.Now" />

它是我的模型:

public class M_ARC
{
    [Key]
    [Display(Name = "Periode")]
    [Required]
    public int Periode { get; set; }
    [Display(Name = "Email SPDT")]
    [Required]
    [DataType(DataType.DateTime)]
    [DisplayFormat(DataFormatString = "dd/MM/yyyy", ApplyFormatInEditMode = true)]
    public DateTime EmailSPDT { get; set; }
    [Display(Name = "Jatuh Tempo")]
    [Required]
    public DateTime JatuhTempoDT { get; set; }
    [Display(Name = "Informasi Bank")]
    [Required]
    public DateTime InformasiBankDT { get; set; }
    [Display(Name = "CreateID")]
    [Required]
    public string CreateID { get; set; }
    [Display(Name = "CreateDT")]
    [Required]
    public DateTime CreateDT { get; set; }
    [Display(Name = "UpdateID")]
    [Required]
    public string UpdateID { get; set; }
    [Display(Name = "UpdateDT")]
    [Required]
    public DateTime UpdateDT { get; set; }
}

我得到了这样的异常:

不能在列' period '中插入NULL值;列不允许为空,INSERT失败,语句已终止

我必须做什么?请帮助。谢谢。

使用与数组MVC的模型绑定插入值时,Null列属性

嗯,你所发布的,你所提到的错误是不可能的。period是int类型,不可为空。它不可能是空的……默认值为0。

是否有可能你有一个以上的M_ARC类,你引用了错误的一个?另一个有一个可空的int周期?