Przesyłanie danych z formularza przez url.action

0

Witam, na stronie generuje tabelkę która wyświetla wszystkie dane, w każdym wierszy tabelki generuje button który po kliknięciu ma przenosić do kontrolera wysyłając przy tym wszystkie wyświetlane dane, i do tego momentu działa. Problem pojawia się jednak kiedy wraz z danymi z modelu chcę przesłać wartość z inputa typu number, nie mam pojęcia jak to zrobić. Googluje, próbuje, nic nie działa tak jak potrzebuje, sposób z wykorzystaniem ajax'a u mnie nie zadziała ponieważ dane lecą foreach'em, i koniecznie muszą tak lecieć, wklejam kawałek kodu.

<td>
                    @Html.ValueFor(modelItem => item.jednaZDanych)
                </td>
                <td>
                    <input type="number" min="1" value="0" class="form-control" id="ilosc" name="ilosc">
                </td>
                <td>
                    <input type="button" class="btn btn-success" name="name" value="Wybierz" onclick="location.href='@Url.Action("FunkcjaIdącaDoKontrolera", "NazwaKontrolera",  new { danePrzykladowe = item.jednaZDanych, ilosc = "JAK TO PRZESŁAĆ TUTAJ" })'" />
                </td>

Bardzo proszę o pomoc.

0

Cześć,

chcesz przesłać "item.jednaZDanych" oraz "ilosc" z widoku do kontrolera? Czy z kontrolera do widoku?

0
froziu napisał(a):

Cześć,

chcesz przesłać "item.jednaZDanych" oraz "ilosc" z widoku do kontrolera? Czy z kontrolera do widoku?

Witam, z widoku do kontrolera

1

Ze względu na to, że i tak generujesz sobie tam JavaScript, to może coś w tym stylu:

<input type="button" class="btn btn-success" name="name" value="Wybierz" onclick="location.href='@Url.Action("FunkcjaIdącaDoKontrolera", "NazwaKontrolera",  new { danePrzykladowe = item.jednaZDanych })' + '&ilosc=' + document.getElementById('ilosc').value" />
0

Pokaż zatem kontroler w którym chcesz to odebrać :)

0
Ktos napisał(a):

Ze względu na to, że i tak generujesz sobie tam JavaScript, to może coś w tym stylu:

<input type="button" class="btn btn-success" name="name" value="Wybierz" onclick="location.href='@Url.Action("FunkcjaIdącaDoKontrolera", "NazwaKontrolera",  new { danePrzykladowe = item.jednaZDanych })' + '&ilosc=' + document.getElementById('ilosc').value" />

Dziękuje bardzo, już mam punkt zaczepienia, kontroller dostaje wartość ilości jednak zawsze z pierwszego inputa, a ma dostawać z najbliższego buttonowi inputa typu number, próbuje aktualnie w ten sposób:

'&ilosc=' + $(this).prev('input').val()

Próbowałem też c closest(), ale nie działa w żaden sposób, wiesz może jak to pokonać?

EDIT.

W końcu wywalczyłem, ostateczna wersja:

'&ilosc=' + $(this).parent().parent().find('.ilosc').val()

Dziękuje bardzo za pomoc!

0
Skromny Kret napisał(a):

Pokaż zatem kontroler w którym chcesz to odebrać :)

Kontroler póki co jest pusty, tylko przyjmuje wartości, wina na pewno nie leży po jego stronie, problem mam przy wysyłaniu

0

Jesteś pewny? :)

Jeśli nazwiesz wartości w kontrolerze w stylu
public IActionResult NameOfAction(int value, string name)

A w widoku nazwiesz je
<input id="wartosc" name="wartość" />
<input id="nazwa" name="nazwa" />

To może być problem w kontrolerze (lub widoku, bo to problem niedopasowania nazw zmiennych).

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