同时将2行数据插入同一模型项ASP.NET Core

时间:2019-02-28 03:55:18

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

是否可以以相同的形式,在相同的模型项目中添加数据,但可以像这样添加不同的数据?

请参阅我所附的屏幕快照中的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));
        }
}

以下是屏幕截图:

From Here

To Here

我就这样结束了:

My currently

1 个答案:

答案 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.Firsttransaction.Second