Одновременно вставьте 2 строки данных в один и тот же элемент модели ASP.NET Core - PullRequest
0 голосов
/ 28 февраля 2019

Можно ли добавить данные в той же форме, в том же элементе модели, но в разных данных, подобных этой?

См. 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 голосов
/ 28 февраля 2019

Да, вы можете сделать это, сделав ViewModel и добавив в него два свойства класса Transaksi.

public class TransactionVM
{
    public Transaksi First {get; set;}
    public Transaksi Second {get; set;}
}

Теперь в представлении «Создать» вместо этого можно связать модель TransactionVM.Transaksi модель.И теперь ваша подпись метода создания должна выглядеть следующим образом.

public async Task<IActionResult> Create(TransactionVM transaction)

И вы можете получить обе записи по transaction.First и transaction.Second.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...