将所选值的参数发送到控制器

时间:2017-06-02 19:51:41

标签: asp.net asp.net-mvc

我有这样的HTML:

HTML

<div class="col-md-3 col-sm-12">
  <div>
    <p>Región</p>
    <select id="lstRegion" class="form-control  agenda_space" aria-hidden="true"></select>
  </div>
  <div>
    <p>Solicitud</p>
    <select id="lstSolicitud" class="form-control agenda_space" aria-hidden="true"> </select>
  </div>
  <br/>
  <div>
    <a href="javascript:;" id="event_add" class="btn green"> Actualizar Filtro </a>
    <br/>
  </div>

JS:

 $("#lstRegion")
                .getJSONCatalog({
                    onSuccess: function (response) {
                        console.log(response);
                    },
                    url: '/Agenda/GetRegion',
                    valueProperty: "ID",
                    textProperty: "valor"
                });
        //Load solicitud dropdown
        $("#lstSolicitud")
                .getJSONCatalog({
                    url: '/Agenda/GetSolicitud',
                    valueProperty: "ID",
                    textProperty: "solicitud"
                });

控制器:

 public ActionResult GetRegion()
        {
            try
            {
                var listaRegistros = db.CatalogoRegistros.Where(x => x.CatalogosCodigo == "REGI").Select(x => new
                {
                    x.ID
                     ,
                    valor = x.Valor
                });
                return Json(listaRegistros, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {

                throw ex;
            }


        }
        public ActionResult GetSolicitud()
        {
            try
            {
                var listasolicitud = db.Solicitudes.Select(x => new { x.ID, solicitud = "Folio: " + x.ID });
                return Json(listasolicitud, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

他们工作得很好我得到了dropdwon列表,但现在我想在点击<a href="javascript:;" id="event_add" class="btn green"> Actualizar Filtro </a>时对每个下拉列表的选定值执行GET操作。

但我在asp.net中真的很新,我不知道我需要做什么来获取选定的值并发送给控制器。

谷歌上搜索我发现我需要在我的控制器中使用方法来获取值:

控制器将是:

  public ActionResult GetTareas(string lstRegionValue,  string lstsolicitudValue)
        {
        }

但我不知道如何通过JS发送它们,我怎么能这样做才能将所选参数接收到我的控制器中?此致

更新 我尝试使用Ajax,如:

$.ajax({
    type: 'GET',
    url: '@Url.Action("Agenda", "GetTareas")', 
    data: { region: $('#lstRegion option:selected').html(), solicitud: $('#lstSolicitud option:selected').html() }, // pass the value to the id parameter
    dataType: 'json', 
    success: function (data) {
        console.log(data);
    }});

但是如何在点击event_add时触发该功能?

2 个答案:

答案 0 :(得分:0)

要在点击时运行更新的ajax代码,请添加()点击事件处理程序并在其中运行您的代码。

#event_add

答案 1 :(得分:0)

您好请尝试以下更新的代码:

 $('#event_add').click(function(e){
   var regionval = $('#lstRegion option:selected').html(),
   var solicval =   $('#lstSolicitud option:selected').html(),

  $.ajax({
    type: 'GET',
    url: '@Url.Action("Agenda", "GetTareas", new { lstRegionValue = regionval, lstsolicitudValue =solicval})', 
    });
}); 

注意:我没有测试代码,但希望它适合你

控制器代码:

 public ActionResult GetTareas(string lstRegionValue,  string lstsolicitudValue)
        {
        }

希望它有所帮助,谢谢