asp.net mvc Renderizar una vista parcial con Java Script

Quiero hacer una vista parcial que muestre datos en una tabla.

Tendré un elemento Seleccionar con los services para elegir.

Cuando el usuario selecciona un service en el cuadro combinado, quiero llamar a una vista parcial con el número de identificación del service:

¿Cómo puedo hacer esto?

Aquí hay un método de acción que renderizará la vista parcial

// // GET: /Service/ServiceStatusLogs/1 public ActionResult ServiceStatusLogs(int id) { var db = new EFServiceStatusHistoryRepository(); IList<ServiceStatusHistory> logs = db.GetAllStatusLogs(id); return View("_ServiceStatusLogs", logs); } 

Aquí está el método de acción principal que devuelve la página:

 // // GET: /Services/Status public ActionResult Status() { IList<Service> services; using (var db = new EFServiceRepository()) { services = db.GetAll(); } return View(services); } 

Puede usar la funcionalidad $ .ajax para lograrlo, verifique esto: –

  //Combo box change event $("#comboboxName").change(function () { //Get service Id var serviceId = $("#comboboxName").val(); //Do ajax call $.ajax({ type: 'GET', url: "@Url.Content("/Service/ServiceStatusLogs/")", data : { Id:serviceId //Data need to pass as parameter }, dataType: 'html', //dataType - html success:function(result) { //Create a Div around the Partial View and fill the result $('#partialViewContainerDiv').html(result); } }); }); 

También debería devolver una vista parcial en lugar de ver

 // // GET: /Service/ServiceStatusLogs/1 public ActionResult ServiceStatusLogs(int id) { var db = new EFServiceStatusHistoryRepository(); IList<ServiceStatusHistory> logs = db.GetAllStatusLogs(id); return PartialView("_ServiceStatusLogs", logs); } 

Prueba esto:

 public ActionResult ServiceStatusLogs( int id ) { //Prepare your model return PartialView( "UserDetails", model ); } 

Cualquiera entonces usa javascript (ajax) para cargar contenido para un elemento del DOM:

 $('#user_content').load('/Service/ServiceStatusLogs');