MVC: строки запроса тега привязки в AJAX не получены контроллером - PullRequest
0 голосов
/ 09 апреля 2019

Я новичок в MVC, и я из ASP Classic.У меня есть следующее table с edit button отрисовкой Datatable:

Table Edit Button

Когда я нажимаю edit button, я хочу пройтистроку запроса их соответствующих AutoINC к Controller и загрузите страницу PasswordDet.

Javascript AJAX частичный код для кнопки редактирования

"columns": [
                { "data": "LoginID", "orderable" : true },
                { "data": "Name", "orderable": true },
                { "data": "DateCreated", "orderable": true },
                {
                    "orderable":false,
                    "render": function (data, type, full, meta) {
                        return '<a href="/Password/PasswordDet/' + full.AutoINC + '"><img src="../../Content/myPics/edit-2-24.png" ></a>';
                    }
                },
            ],

Контроллер

Я пробовал следующее withи without присвоение имени строке запроса

Без присвоения имени строке запроса

Tried A

public ActionResult PasswordDet(string AutoINC)
        {
            //**** AutoINC is always NULL****
            return View();
        }

С Именованием Строка запроса

Tried B with QueryString Name

public ActionResult PasswordDet()
        {
            string AutoINC = Request.QueryString["AutoINC"];
            //**** AutoINC is always NULL****
            return View();
        }

Более того, у меня есть Новая кнопка, которая не передает ни одного запросастрока, как мне обработать NULL

"buttons": [
                {
                    text: 'New',
                    className: "btn btn-default",
                    action: function (e, dt, node, config) {
                        window.location.href = '@Url.Action("PasswordDet", "Password")';
                    },
                }
            ],

1 Ответ

1 голос
/ 09 апреля 2019

Я предполагаю, что ваш маршрут по умолчанию выглядит примерно так:

routes.MapRoute(
   "Default",                                              // Route name
   "{controller}/{action}/{id}",                           // URL with parameters
   new { controller = "Home", action = "Index", id = UrlParameter.Optional}  // Parameter defaults
);

Так что сделайте ваш PasswordDet метод действия следующим образом:

public ActionResult PasswordDet(int id)
{
    // do whatever you want to with id here
    return View();
}

Теперь localhost:50118/Password/PasswordDet/550 наверняка отобразитсяк вышеуказанному методу действия, имеющему значение id 550.

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