Pass two parameters at a time to the controller - A parameter is in an Input Group

0

Good morning everyone.

I'm new to Asp.Net and I've got a personal project to do, but I'm having difficulty passing parameters to the controller. I do not know how to pass more than one parameter at a time. I have a modal to change the type of hospital bed accommodation. I need to pass to the controller the code of the bed and the code of the new type of accommodation, but I did not get it at all. I'm searching here and on google there is hair hands 4 days = /

The bed code is in bed.CdLeito.ToString ()

And the code for the type of accommodation is in hm.GetTypeAccommodation (). Rows [i] [0] .ToString () and is in an input group

Obs : I tried Get and Post, I could not get anywhere. The save button's formation calls the controller, but does not send the codes

Obs2 : Excuse me if the code is out of programming standards, it's really that I started in Asp.Net now. I only know basic C #.

Obs3 : I'm open to any suggestions for improvement in the code.

Follow the codes

HTML

@foreach (var unidade in hm.GetAllUnidInt())
{
    <!-- ESSE FOREACH LISTA TODAS AS UNIDADES DE INTERNAÇÃO -->

        foreach (var leito in hm.GetLeitosAtivos())
            {               
                <!-- ESSE FOREACH CARREGA TODOS OS LEITOS ATIVOS-->

                if (unidade.DescricaoUnidade.ToString() == leito.DsUnidInt.ToString())
                {

                    <!-- ESSE IF É PARA MOSTRAR O LEITO DA RESPECTIVA UNIDADE DE INTERNAÇÃO -->

                    if (@leito.StatusLeito.ToString() == "OCUPADO")
                    {
                        <!--DIV Leito Ocupado - transparente-->
                        <!--AQUI TEM UM CARD COM UM BUTTON QUE CHAMA O MODAL CASO A CONDIÇÃO SEJA A DO IF-->

                    }
                    else if (@leito.StatusLeito.ToString() == "VAGO")
                    {
                        <!--DIV Leito Vago - Verde-->
                        <!--AQUI TEM UM CARD COM UM BUTTON QUE CHAMA O MODAL CASO A CONDIÇÃO SEJA A DO ELSE IF-->


                    }
                    else if (@leito.StatusLeito.ToString() == "LIMPEZA")
                    {
                        <!--DIV Leito Em limpeza - Amarelo-->
                        <!--AQUI TEM UM CARD COM UM BUTTON QUE CHAMA O MODAL CASO A CONDIÇÃO SEJA A DO ELSE IF-->


                    }
                    else
                    {
                        <!--DIV Leito Interditado - Amarelo-->
                        <!--AQUI TEM UM CARD COM UM BUTTON QUE CHAMA O MODAL CASO A CONDIÇÃO SEJA A DO ELSE-->


                    }

                    <!--Modal - Alterar acomodação do leito-->
                    <form method="post">
                        <div class="modal fade" id="@string.Concat("alteraAcomodacao", leito.CdLeito.ToString())" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
                            <div class="modal-dialog modal-dialog-centered" role="document">
                                <div class="modal-content">
                                    <div class="modal-header">
                                        <h5 class="modal-title" id="exampleModalLabel">Editar informações do leito</h5>
                                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                        </button>
                                        <label id="leitoSelecionado" value="@leito.CdLeito.ToString()"></label>
                                    </div>
                                    <div class="modal-body">

                                        <p>Alterar o tipo de acomodação do leito</p>
                                        <div class="input-group mb-3">
                                            @{
                                                <select class="custom-select" id="inputGroupSelect01">
                                                    <option selected>Selecione a nova acomodação...</option>
                                                    @for (int i = 0; i < hm.GetTipoAcomodacao().Rows.Count; i++)
                                                    {
                                                        <!-- ESSE FOR É PARA POPULAR UM DROPDOWN COM OS TIPOS DE ACOMODAÇÃO PARA O USUÁRIO SELECIONAR-->

                                                        <option value="@hm.GetTipoAcomodacao().Rows[i][0].ToString()">@hm.GetTipoAcomodacao().Rows[i][1].ToString()</option>
                                                    }

                                                </select>
                                            }
                                        </div>
                                        <br />

                                    </div>
                                    <div class="modal-footer">
                                        <button type="button" class="btn btn-danger" data-dismiss="modal" id="btnCancelarAlteracoesLeito">Cancelar</button>
                                        <button type="submit" class="btn btn-success btn-submit" formaction="@Url.Action("Index","Home", new { cdLeito = @leito.CdLeito.ToString(), novaAcomodacao = @hm.GetTipoAcomodacao().Rows[i][0].ToString() })">Salvar</button>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </form>




            }

}

Controller

    [HttPost]
    public ActionResult Index(string cdLeito, string novaAcomodacao)
    {
        return View();
    }
    
asked by anonymous 29.08.2018 / 13:28

2 answers

0

What a coincidence rsrsr

I did exactly what you said, but before I saw your answer and when I came to post here that I had succeeded, I saw your comment rsrsr

I solved the problem with the Get method, so the code looked like this:

<!--Modal - Alterar acomodação do leito-->
<form method="get">
    <div class="modal fade" id="@string.Concat("alteraAcomodacao", leito.CdLeito.ToString())" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Editar informações do leito</h5>

                    <!-- INPUT HIDDEN PARA PEGAR O CÓDIGO DO LEITO-->
                    <input type="text" value="@leito.CdLeito.ToString()" hidden name="cdLeito"/>


                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">

                    <p>Alterar o tipo de acomodação do leito</p>



                    <div class="input-group mb-3">
                        @{
                            <select name="novaAcomodacao" class="custom-select">
                                <option>Selecione a nova acomodação...</option>
                                @for (int i = 0; i < hm.GetTipoAcomodacao().Rows.Count; i++)
                                {

                                    <option value="@hm.GetTipoAcomodacao().Rows[i][0].ToString()">@hm.GetTipoAcomodacao().Rows[i][1].ToString()</option>


                                }

                            </select>
                        }
                    </div>
                    <br />

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-danger" data-dismiss="modal" id="btnCancelarAlteracoesLeito">Cancelar</button>
                    <button type="submit" class="btn btn-success btn-submit">Salvar</button>
                </div>
            </div>
        </div>
    </div>
</form>
    
29.08.2018 / 17:40
0

You can add an input hidden to persist cdLeito and its inputs need to have the name attribute so that the values are included in FormData and sent to the destination route

<input type="hidden" id="leitoSelecionado" name="cdLeito" value="@leito.CdLeito.ToString()"/>

E

<select class="custom-select" id="inputGroupSelect01" name="novaAcomodacao">
    
29.08.2018 / 16:41