MVC z bootstrap. Przekazanie całego medelu do innej metody kontrolera poprzez przycisk na widok

0

Hej wszystkim.

Mam problem z przekazaniem wielu parametrów z widoku listy do kontrolera, który wykona wykona dalsze operacje budując z tych zmiennych stringa do selecta na procedurze.

Próbowałem przekazać niezbędne parametry poprzez przycisk

<a class="btn btn-primary" type="submit" href="nazwa_metody_w_tym_samym_kontrolerze?zmienna1=@Model.ZmiennaModelu1&[email protected]&[email protected]</a>

Niestety to rozwiązanie powodowało, że polskie znaki znikały i znaki typu % też były podmieniane. W efekcie cały proces upadał bo procedura zwracała null.

Dlatego w kolejnym kroku postanowiłem stworzyć jakiś rodzaj mikroformularz, który zbierze te dane i wyśle je do właściwej metody, która będzie posiadać też swój model

Niestety mimo wielu prób stoję w miejscu, a deadLine był wczoraj :/

@using (Html.BeginForm("MojaMetoda", "Kontroler", FormMethod.Post))
                        {
                            <div class="col-4 text-right">
                              

// pierwsza próba przechwycenia danych
                                <input type="hidden" id="zmienna1" name="zmienna1" value="@Model.ZmiennaModelu1">
                                <input type="hidden" id="zmienna2" name="zmienna2" value="@Model.ZmeinnaModelu2">
                                <input type="hidden" id="zmienna3" name="zmienna3" value="@Model.ZmiennaModelu3">
                                
//kolejne podejście
                                @Html.Hidden("zmienna1", Model.ZmiennaModelu1)
                                @Html.Hidden("zmienna2", Model.ZmeinnaModelu2)
                                @Html.Hidden("zmienna3", Model.ZmiennaModelu3)



                                <button type="submit" class="btn btn-primary">Generuj paczkę</button>


                            </div>


                        }

Z góry dziękuję za pomoc
;)

1

Pokaż jak przechwytujesz w akcji kontrolera parametry metody

0

@gswidwa1: tam mam model osobny z polami odpowiadającymi widokowi

@Html.Hidden("zmienna1", Model.ZmiennaModelu1)
 @Html.Hidden("zmienna2", Model.ZmeinnaModelu2)
@Html.Hidden("zmienna3", Model.ZmiennaModelu3)


Dzięki za zainteresowanie, ale przez przypadek odkryłem przyczynę.
Problem polegał na tym, że moją post method miałem zagnieżdżoną w innym formie. I to nie pozwalało mi go użyć.

Więc prawidłowo działa to teraz tak:

 @using (Html.BeginForm("MojaMetoda", "Kontroler", FormMethod.Post))
                    {
                        <div class="col-4 text-right">
                         

                            @Html.Hidden("zmienna1", Model.ZmiennaModelu1)
                                @Html.Hidden("zmienna2", Model.ZmeinnaModelu2)
                                @Html.Hidden("zmienna3", Model.ZmiennaModelu3)


                            <button type="submit" class="btn btn-primary">Generuj paczkę</button>
                        </div>
                    }

Z tym, że trzeba pamiętać, że formularzy nie wolno zagnieżdżać. Lub wypchnąć je do Modala.

P.S.
Zasada "żółtej kaczuszki" jednak wiecznie żywa

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