Для вызова / вызова jQuery Ajax необходимо впоследствии вызвать 2 метода действия, чтобы в конечном итоге отобразить желаемое представление ASP.NET MVC - PullRequest
0 голосов
/ 13 октября 2018

Я использую 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 для отображения желаемого представления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...