是否可以以相同的形式,在相同的模型项目中添加数据,但可以像这样添加不同的数据?
请参阅我所附的屏幕快照中的Kodeakun
模型项目。抱歉,我的英语不好。
我的模型班:
public class Transaksi
{
[Key]
public int Id { get; set; }
public string Kodeakun { get; set; }
public string Keterangan { get; set; }
[DataType(DataType.Date)]
public DateTime Tanggal { get; set; }
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)]
public decimal Debit { get; set; }
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = false)]
public decimal Kredit { get; set; }
}
我的控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Kodeakun,Keterangan,Tanggal,Debit,Kredit")] Transaksi transaksi)
{
if (ModelState.IsValid)
{
var debit = new Transaksi
{
Kodeakun = transaksi.Kodeakun,
Keterangan = transaksi.Keterangan,
Tanggal = transaksi.Tanggal,
Debit = transaksi.Debit,
Kredit = 0
};
var kredit = new Transaksi
{
Kodeakun = transaksi.Kodeakun,
Keterangan = transaksi.Keterangan,
Tanggal = transaksi.Tanggal,
Debit = 0,
Kredit = transaksi.Kredit
};
_context.Add(debit);
_context.Add(kredit);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
以下是屏幕截图:
我就这样结束了:
答案 0 :(得分:2)
是的,您可以通过创建一个ViewModel
并在其中添加Transaksi
类的两个属性来实现。
public class TransactionVM
{
public Transaksi First {get; set;}
public Transaksi Second {get; set;}
}
现在,在“创建”视图中,您可以绑定TransactionVM
模型而不是Transaksi
模型。现在,您的create方法签名应该看起来像这样。
public async Task<IActionResult> Create(TransactionVM transaction)
您可以同时获得两个条目
transaction.First
和transaction.Second
。