Я использую jquery DataTables, чтобы показать некоторые табличные данные, и я также поместил ссылку редактирования для каждой строки в упомянутых jquery DataTables, чтобы пользователь мог редактировать данные, связанные с определенной строкой, если это необходимо.(Примечание: я понятия не имею, как использовать HTML-помощники ASP.NET MVC в jQuery DataTables, поэтому я использую ссылку html в следующем коде).
jquery DataTable javascript:
$("#resultCodeTable").dataTable({
"processing": true,
"serverSide": false,
"destroy": shouldDestroy,
"ajax": {
"url": "../Admin/LoadResultCodes",
"type": "GET",
"datatype": "json",
"data": function (data) {
data.actionCodeIDArg = actionCodeIDInQuestion;
}
},
....................................
............................
..............
columnDefs: [
{
{
targets: 1,
searchable: false,
orderable: false,
name: "EditResultCodeInQuestionReasonForArrears",
"data": "ID",
render: function (data, type, full, meta) {
if (type === 'display') {
data = '<a class="editResultCodeInQuestionReasonForArrears" href="javascript:void(0)" data-id="' + full.ID + '">Edit RFAs</a>'
}
return data;
}
},
....................................
............................
..............
Нажатие на вышеупомянутую ссылку гарантирует, что точка выполнения достигнет следующего метода обработчика событий jQuery:
jQuery Метод / функция обработчика событий Javascript
$('#resultCodeTable').on('click', '.editResultCodeInQuestionReasonForArrears', function () {
console.log(this.value);
navigateToAParticularResultCodeAssociatedReasonForArrearsList($(this).data('id'));
});
По сути, мне пришлось в итоге создать 2 отдельных метода действий для решения проблемы.В приведенном ниже коде jquery / Javascript важно обратить внимание на первый метод действия '../Admin/RedirectToNavigateToAParticularResultCodeAssociatedReasonForArrearsList'
function navigateToAParticularResultCodeAssociatedReasonForArrearsList(resultCodeTable_ID) {
console.log(resultCodeTable_ID);
$.ajax({
url: '../Admin/RedirectToNavigateToAParticularResultCodeAssociatedReasonForArrearsList',
type: 'POST',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: "{'" + "resultCodeTable_IDArg':'" + resultCodeTable_ID + "'}",
cache: false,
}).done(function (response, status, jqxhr) {
window.location.href = response.Url;
})
.fail(function (jqxhr, status, error) {
// this is the ""error"" callback
});
}
Цель 1-го метода действия, называемого' ../Admin/RedirectToNistArConjectRatesRarS_Reals_Rate_Conject_Rate_Conject_Ware_Rate_Conject_Ware_Rate_Conject_Base- получить URL-адрес внутри объекта Json.
[HttpPost]
public ActionResult RedirectToNavigateToAParticularResultCodeAssociatedReasonForArrearsList(int resultCodeTable_IDArg)
{
var redirectUrl = new UrlHelper(Request.RequestContext).Action("NavigateToAParticularResultCodeAssociatedReasonForArrearsList", "Admin", new { resultCodeTable_IDArg = resultCodeTable_IDArg });
return Json(new { Url = redirectUrl });
}
Цель второго метода действия - в конечном итоге перейти к представлению ASP.NET MVC, которое я хочу показать.
public ActionResult NavigateToAParticularResultCodeAssociatedReasonForArrearsList(int resultCodeTable_IDArg)
{
AParticularResultCodeAssociatedReasonForArrearsListViewModel aParticularResultCodeAssociatedReasonForArrearsListViewModel = new AParticularResultCodeAssociatedReasonForArrearsListViewModel();
aParticularResultCodeAssociatedReasonForArrearsListViewModel.ResultCodeTable_ID = resultCodeTable_IDArg;
aParticularResultCodeAssociatedReasonForArrearsListViewModel.RFACodeList = actionCodeResultCodeBusinessService.GetSpecificResultCodeRFACodeList(resultCodeTable_IDArg);
return View("~/Areas/Admin/Views/Admin/AdminModules/Auxiliaries/AParticularResultCodeAssociatedReasonForArrearsList.cshtml", aParticularResultCodeAssociatedReasonForArrearsListViewModel);
}
Однако мне не нравится тот факт, что мне нужно использовать 2 метода действий для перехода к нужному представлению asp.net mvc, поэтому, пожалуйста, не стесняйтесь предлагать улучшения или даже совершенно иное лучшее решение.Может ли кто-нибудь предложить лучшее решение, которое будет более эффективным и понятным для других?(Это выглядит как обходной путь вызова 2 методов действия ASP.NET MVC для отображения желаемого представления).