Строка параметра равна нулю при передаче в контроллер из таблицы данных - PullRequest
0 голосов
/ 04 июля 2019

Я новичок в MVC.Так что это может быть глупый вопрос от меня.

Я пытаюсь отправить параметр на мой контроллер, но я не получил значение.Может кто-нибудь помочь мне, что я сделал не так?

Имя пользователя, которое передается в контроллер, всегда равно нулю.Из приведенного ниже примера я использую целое число в качестве параметра.Когда я использую идентификатор, я получу параметр.Но когда я передам строку, я получу нулевое значение.Пожалуйста, помогите мне.Спасибо.

Вот вид

$(document).ready(function () {
        dataTable = $("#batchTable").DataTable({
            "ajax": {
                "url": "/Home/GetDPUserList",
                "type": "POST",
                "datatype": "json"
            },

            "columns": [
                { "data": "Username", "name":"Username" },
                { "data": "Name", "name": "Name"  },
                { "data": "Email", "name": "Email"  },
                { "data": "IsAdmin", "name": "IsAdmin" },
                {
                    "data": "Username", "render": function (data) {
                        return "<a class='btn btn-default btn-sm' onclick=EditUserForm('@Url.Action("UpdateUser","Home")/" + data +"')><i class='fa fa-pencil'></i> Edit</a><a class='btn btn-danger btn-sm'  style='margin-left: 5px' onclick=Delete(" + data +")><i class='fa fa-trash'></i> Delete</a>";
                    },
                    "orderable": false,
                    "searchable": false,
                    "width": "150px"
                },

            ],

            "processing": "true",
            "serverSide": "true",
            "order": [0, "asc"]
        });
    });

function EditUserForm(url) {
        alert(url)
        var formDiv = $('<div/>');

        $.get(url)
            .done(function (response) {
                formDiv.html(response);



                popup = formDiv.dialog({
                    autoOpen: true,
                    resizable: false,
                    title: "Add New User",
                    height: 410,
                    width: 300,
                    close: function () {
                        popup.dialog('destroy').remove();
                    }
                });
            });
    }

Вот контроллер

[HttpGet]
    public ActionResult UpdateUser(string username = "")
    {
        if (string.IsNullOrEmpty(username))
        {
            return View(new DP_User());
        }
        else
        {
            using (DBModel db = new DBModel())
            {
                return View(db.DP_User.Where(x => x.Username == username).FirstOrDefault<DP_User>());
            }
        }
    }

1 Ответ

0 голосов
/ 04 июля 2019

Добавить маршрут в Route.Config

routes.MapRoute(
         name: "namesomething",/// as per your naming convention 
         url: "Home/UpdateUser/{username}",
         defaults: new { controller = "Home", action = "UpdateUser", username = UrlParameter.Optional }
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...