Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

426
Vistas
Publicar datos en el controlador MVC desde DropDownList

Tengo un MVC, DropDownList de selección múltiple que llena los elementos seleccionados de un modelo SelectListItem .

@Html.DropDownList("EmployeeStatuses", (IEnumerable<SelectListItem>)ViewBag.EmployeeStatuses, new { multiple = "multiple", style = "width: 100%;", @class = "select2", onchange = "UpdateEmployeeStatusFilter()", id = "employee-status-type" })

Cuando el usuario selecciona o anula la selección de elementos de DropDownList , quiero ejecutar un método en mi controlador que filtre los datos en la vista. Esto se hace con el evento onChange UpdateEmployeeStatusFilter() .

 <script type="text/javascript"> function UpdateEmployeeStatusFilter() { var value = $('#employee-status-type').val(); console.log(value); var a = ["X", "Y", "Z"]; console.log(a); $.ajax({ type: 'POST', url: '@Url.Action("SearchEmployee", "Employee")', data: { valueMember: value }, dataType: 'json', traditional: true, success: function (msg) { alert(msg) } }); }; </script>

Cuando depuro el script, puedo obtener el valor del value y escribirlo en la ventana de la consola. Cuando se llama al método del controlador, el valor es null .

 public IActionResult SearchEmployee(string itemsSelected) { // Do Stuff with itemsSelected return RedirectToAction("Index"); }

Mi pregunta es ¿cómo obtengo ese valor en mi controlador?

No estoy seguro de si este código es relevante o no, pero lo incluiré para mayor claridad.

 public IActionResult Index() { // Get Employment Statuses IEnumerable<SelectListItem> statuses = _mockDataRepository.GetEmployeeStatuses().Select(c => new SelectListItem { Value = c.ValueMember, Text = c.DisplayMember, Selected = c.ValueMember == "AC" }); ViewBag.EmployeeStatuses = statuses; }
 public class SelectListItem { [Key] public string ValueMember { get; set; } public string DisplayMember { get; set; } public int SortOrder { get; set; } = 0; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Falta de coincidencia de nombre. El método de acción SearchEmployee() tiene el parámetro de entrada itemsSelected . Por lo tanto, establezca el mismo nombre de parámetro en la llamada .ajax :

 data: { itemsSelected: value },
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda