¿Cómo llamar función JavaScript desde Asp.Net Mvc?

publicado por: Anonymous

Mesecito invocar una función JS desde mi controlador pasándole un valor entero, específicamente lo que trato de hacer es establecer el valor de selección de un DropDownList.

Intente esto pero no me funciona…

Codigo C#

  int filter = Convert.ToInt32(Request.Form["Filtro"]);
  ViewBag.Info = null;
  var informacionCountContractsFilter = _IContractsApiConsumer.InformacionConteoContratoFiltro(1, 2, filter);
  ViewBag.Info = informacionCountContractsFilter;
  ViewBag.Filtro = filter;

Codigo JS

<script type="text/javascript">
    @ViewBag.Filtro;

    function SetSelectFilter() {
        document.getElementById("Filtro").selectedIndex = @ViewBag.Filtro;;
    }
</script>

Html

  <div class="search_categories">
                <div class="select">
                    <form method="POST" action="Index">
                        <select name="Filtro" id="Filtro" class="Filtro">
                            <option value="1">Special</option>
                            <option value="2">Cloud</option>
                            <option value="3">Active</option>
                            <option value="4">Inactive</option>
                        </select>
                        <input type="submit" value="Filter Proyects" class="btn" />
                    </form>
                </div>
            </div>

solución

1 En el HTML invoco la funcion js de nombre SetSelectFilter en el evento onLoad

<body onload="SetSelectFilter()">
</body>

2 En el js declare la variable filtro y escribi la funcion SetSelectFilter donde asigno al select el valor de esta:

<script>
    let filtro = @ViewBag.Filtro;
    $('Filtro').val(filtro);

    function SetSelectFilter() {
        document.getElementById("Filtro").selectedIndex = filtro;
    }
</script>

3 En mi controlador asigno a Viebag.Filtro el valor para setear el Select

//my code *********EEMC******
                    _IContractsApiConsumer.SetAuthHeader(_tokenManager.Token);
                    string t = Request.Method;
                    **ViewBag.Filtro = 0;**
                    if (Request.Method == "GET")
                    {
                        ViewBag.Info = null;
                        var informacionCountContracts = _IContractsApiConsumer.InformacionConteoContrato(1, 2);
                        ViewBag.Info = informacionCountContracts;
                    }
                    else if (Request.Method == "POST")
                    {
                        int filter = Convert.ToInt32(Request.Form["Filtro"]);
                        ViewBag.Info = null;
                        var informacionCountContractsFilter = _IContractsApiConsumer.InformacionConteoContratoFiltro(1, 2, filter);
                        ViewBag.Info = informacionCountContractsFilter;
                        **ViewBag.Filtro = filter - 1 ;**
                    }
  //***************************************
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *