【发布时间】:2014-09-26 16:09:52
【问题描述】:
我想从 ARCCreate 传递一个对象的 ArrayList,以便可以将项目作为多个条目添加到数据库中,这些是我的代码:
我的模特:
public class M_ARC : DbContext
{
[Key]
[Display(Name = "Periode")]
[Required]
[RegularExpression("[2][0]([1][4-9]|[2-9][0-9])(0[1-9]|1[012])", ErrorMessage = "Format tidak sesuai. Contoh format : 201407 (Juli 2014)")]
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; }
}
我的观点:
<tr>
<th>
@Html.Label("Agustus")
</th>
<td>
<input type="text" name="EmailSPDT" class="pengirimanDT" />
</td>
<td>
<input type="text" name="JatuhTempoDT" class="tanggapanDT" />
</td>
<td>
<input type="text" name="InformasiBankDT" class="informasiBankDT" />
</td>
</tr>
<tr>
<th>
@Html.Label("September")
</th>
<td>
<input type="text" name="EmailSPDT" class="pengirimanDT" />
</td>
<td>
<input type="text" name="JatuhTempoDT" class="tanggapanDT" />
</td>
<td>
<input type="text" name="InformasiBankDT" class="informasiBankDT" />
</td>
</tr>
<tr>
<th>
@Html.Label("Oktober")
</th>
<td>
<input type="text" name="EmailSPDT" class="pengirimanDT" />
</td>
<td>
<input type="text" name="JatuhTempoDT" class="tanggapanDT" />
</td>
<td>
<input type="text" name="InformasiBankDT" class="informasiBankDT" />
</td>
</tr>
还有我的控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ARCCreate(List<M_ARC> ARCList)
{
foreach (M_ARC item in ARCList)
{
if (ModelState.IsValid)
{
db.Arcs.Add(item);
db.SaveChanges();
}
else return View();
}
return RedirectToAction("ARCIndex");
}
这是插入多个条目的正确方法吗?或者是否有更好的解决方案可以将多个条目插入我的数据库?
【问题讨论】:
-
只是想澄清一下,您使用的是实体框架吗?
-
是的,你做得对……
-
@DrSchizo..yes.he 正在使用实体...
-
为什么你的 M_ARC 实体继承了 DbContext?而且您不应该将数据库实体传递给视图。你不应该在你的视图模型中使用数据库实体。
-
酷。理想情况下,您希望将域模型与实体分开,因此本质上直接公开数据库在视图中的外观通常是不好的做法。另外,不确定是否需要每次都调用 db.SaveChanges() ,只是在循环之外进行?一个提交而不是几个。
标签: c# asp.net asp.net-mvc razor arraylist