Как объединить / объединить 2 списка выбора в 1 список выбора и сохранить его - PullRequest
0 голосов
/ 14 сентября 2018

Извините, я новичок, до сих пор я учусь на коде из статьи и YouTube иногда, но в этой ситуации я не могу найти его для ответа (может быть, я не понимаю, как реализовать в моем коде), можете ли вы, ребята, помочь мне с моим ядром asp 2.1 код

я хочу, чтобы в моей asp-item viewbag можно было объединить 2 табеля в базе данных, то есть: "Kodeakun" + "Namaakun" и сохранить в базе данных в каждой таблице.

в моей модели транзакций

public class Transaction
{   [ForeignKey(nameof(ChartAccount))]
    public int Id { get; set; }
    public int Kodeakun { get; set; }
    public string Namaakun { get; set; }
    public ChartAccount ChartAccount { get; set; }
    public string Fullname
    {
        get { return Kodeakun + " - " + Namaakun; }
    }

    public string NoBukti { get; set; }
    public DateTime Tanggal { get; set; }
    public string Deskripsi { get; set; }
    public int Debit { get; set; }
    public int Kredit { get; set; }
}

в моем контроллере транзакций при коде вставки

// GET: Transactions/Create
    public IActionResult Create()
    {
    ViewData["Id"] = new SelectList(_context.ChartAccounts, "Id","Id");
    return View();
    }


    // POST: Transactions/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Create([Bind("Id,Kodeakun,Namaakun,NoBukti,Tanggal,Deskripsi,Debit,Kredit")] Transaction transaction)
    {
        if (ModelState.IsValid)
        {
            _context.Add(transaction);
            await _context.SaveChangesAsync();
            return RedirectToAction(nameof(Index));
        }
        ViewData["Id"] = new SelectList(_context.ChartAccounts, "Id", "Id", transaction.Id);
        return View(transaction);
    }

на мой взгляд код

        <div class="form-group">
            <label asp-for="Id" class="control-label">Akun</label>
            <select asp-for="Id" class="form-control" asp-items="ViewBag.Id"></select>
        </div>

я пытаюсь, но не работаю

ViewData["Id"] = new SelectList(_context.ChartAccounts, "Kodeakun"+"Namaakun","Id");

1 Ответ

0 голосов
/ 14 сентября 2018

Вам на самом деле не нужно SelectList, просто IEnumerable<SelectListItem>. Поэтому самое простое решение проблемы:

ViewData["Id"] = _context.ChartAccounts.Select(x => new SelectListItem
{
    Value = x.Id.ToString(),
    Text = $"{x.Kodeakun} {x.Namaakun}"
});

Очевидно, вы можете отформатировать текст так, как вы хотите.

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