Jak mam przekazać wartość z TextBoxFor do kontrolera?

0

Pracuję w MVC5. Mamy taką sytuację - user klika na pole z datą, wybiera ją, ja potem chcę ją zapisać do bazy. Czyli:

screenshot-20201023092127.png

No i tu jest pewien problem. W mojej bazie pole PaymentDate ma wszędzie nulle. W formularzu więc w tej kolumnie są wszędzie puste daty bo tak to zaciąga z bazy. Gdy user wybierze w tym polu jakąs datę to ja wtedy chcę ją zapisać do bazy jako jego wybór - czyli tą datę muszę jakoś przekazać do kontrolera.

Jak przekazuję w ActionLink to pole do kontrolera to widzę w debuggerze, że przekazuje null. Mam więc pytanie i bardzo bym prosił o wskazówki bo siedzę nad tym dłuższy czas i nie wiem jak to zrobić - w jaki sposób mogę przekazać do kontrolera wartość z TextBoxFor, która została wybrana przez usera (czyli konkretna data, jak widać na screenie wyżej)?

View:

<form action="@Url.Action("Update", "Home"))" method="post">
  <tr>
    <td>
      @Html.DisplayFor(modelItem => item.Account)
    </td>
    <td class="choice">
      @Html.TextBoxFor(modelItem => item.PaymentDate, new { @type = "date", @class = "form-control datepicker" }) // to jest pole z datą gdzie user ją sobie wybiera - ta datę tu wybraną chcę zapisać do bazy
    </td>
    <td>
      @Html.ActionLink("Save", "Update", "Home", new { nrAccount = item.Account, manualDate = item.PaymentDate },null)
    </td>
  </tr>
</form>

Controller:

public ActionResult Update(string nrAccount, DateTime? manualDate)
{
    _docs.Update(manualDate, nrAccount);

    return RedirectToAction("Index");
}

Metoda Update:

public void Update(DateTime? manualDate, string nrAccount)
{
    var toUpdate = GetByAccount(nrAccount);

    toUpdate.DATE_MANUAL = manualDate;
    _context.SaveChanges();
}

public IEnumerable<CustomersTable> GetAll()
{
    return _context.CustomersTable;
}

public CustomersTable GetByAccount(string nrAccount)
{
    return GetAll().FirstOrDefault(k => k.FOPKTO_ACCOUNT_ == nrAccount);
}
0
  1. Nie mozesz zrobic tego actionLink jako przycisk Submit? - wtedy otrzymasz formę w kontrolerze
  2. Pobierasz dana wartosc za pomoca jQuery + strzelasz ajaxem do kontrolera

1 użytkowników online, w tym zalogowanych: 0, gości: 1