Я создаю проект, используя MVC, knockoutJS, Web API, Bootstrap и т. Д., Используемая база данных - MSSQL Server 2012. Все работает очень хорошо, контроллеры правильно создали операции CRUD. Данные из БД отображаются в виде таблицы в пользовательском интерфейсе, каждая строка является интерактивной и открывает модальное окно, в котором отображаются данные об этом конкретном элементе. Проблема, с которой я столкнулся, заключается в невозможности передать определенное значение строки, в данном случае идентификатор, в ViewModel в качестве параметра для получения единственного результата в модальном режиме. Я могу сделать это вручную и указать какое-то значение в ViewModel, и данные будут отображаться, но я не могу отправить значение из View.
Вот код для 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;
}
Вот код для представления:
<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>
Параметр aiId предназначен для метода GetRegion в контроллере.
Это код для представления, в котором показаны данные для определенного элемента:
<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>
Любая помощь будет оценена по достоинству!