paginacion net mvc asp asp.net-mvc knockout.js asp.net-web-api asp.net-mvc-viewmodel

asp.net mvc - net - ¿Cómo paso una identificación desde la Vista al ViewModel como un parámetro para la función GET?



paginacion mvc 5 c# (1)

Knockout agrega el objeto enlazado actual como primer argumento cuando llama al controlador de eventos. El segundo argumento es el objeto del evento.

Entonces, lo único que debe hacer es agregar un parámetro a la función viewRegion.

function viewRegion(region) { var regionID = region.RegionID; // get data return false; }

Espero que ayude.

Estoy creando un proyecto usando MVC, knockoutJS, API web, Bootstrap, etc., la base de datos en uso es MSSQL Server 2012. Todo está funcionando muy bien, los controladores han creado correctamente las operaciones CRUD. Los datos de DB se muestran en una tabla de grillas en la interfaz de usuario, y se puede hacer clic en cada fila, y se abre un modal en el que se muestran los datos sobre ese elemento exacto. El problema que estoy experimentando es la imposibilidad de pasar un cierto valor de la fila, en este caso una ID, a ViewModel como parámetro para obtener un único resultado en modal. Puedo hacerlo de forma manual y poner algún valor en ViewModel, y los datos se mostrarán, pero no puedo enviar el valor de la Vista.

Aquí está el código para ViewModel:

var regionsModel = { regionId: ko.observable(), companyId: ko.observable(), name: ko.observable(), companyName: ko.observable() }; var regionsListModel = { regions: ko.observable() }; function getRegions() { get(apiUrl + "Regions/GetRegions", {}, function (data) { regionsListModel.regions(data); }); } function getRegion() { get(apiUrl + "Regions/GetRegion", { aiId: regionsModel.regionId() }, function (data) { regionsModel.regionId(data.RegionID); regionsModel.companyName(data.CompanyName); regionsModel.companyId(data.CompanyID); regionsModel.name(data.Name); }); } function viewRegion() { $("#ViewRegionModal").modal(''show''); //regionsModel.regionId($(''#ViewRegion'').val()); getRegion(); return false; }

Aquí está el código para la Vista:

<table class="table table-striped table-bordered responsive" id="dtable"> <thead> <tr> <th style="width: 20px;">ID</th> <th>Region Name</th> <th>Company Name</th> </tr> </thead> <tbody data-bind="foreach: regionsListModel.regions"> <tr id="ViewRegion" data-toggle="modal" data-bind="click: viewRegion, value: RegionID"> <td data-bind="text: RegionID"></td> <td data-bind="text: Name"></td> <td data-bind="text: CompanyName"></td> </tr> </tbody> </table>

El parámetro aiId es para el método GetRegion en Controller.

Este es el código de la Vista en la que se muestran los datos de un elemento determinado:

<table class="table table-striped" data-bind="with: regionsModel"> <tbody> <tr> <th>Region ID:</th> <td><span data-bind="text: regionsModel.regionId"></span></td> </tr> <tr> <th>Region Name:</th> <td><span data-bind="text: regionsModel.name"></span></td> </tr> <tr> <th>Company Name:</th> <td><span data-bind="text: regionsModel.companyName"></span></td> </tr> </tbody> </table>

¡Cualquier ayuda sería apreciada!