Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!