使用与数组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失败,语句已终止
我必须做什么?请帮助。谢谢。
嗯,你所发布的,你所提到的错误是不可能的。period是int类型,不可为空。它不可能是空的……默认值为0。
是否有可能你有一个以上的M_ARC类,你引用了错误的一个?另一个有一个可空的int周期?