从数据表传递到控制器时,参数字符串为null

时间:2019-07-04 09:51:43

标签: c# jquery asp.net-mvc model-view-controller

我是MVC的新手。所以这可能是我的一个愚蠢问题。

我正在尝试将参数发送到控制器,但是我没有得到该值。有人可以帮我做错什么吗?

在控制器中传递的用户名始终为null。从我遵循的示例中,它使用整数作为参数。当我使用id时,我会得到参数。但是当我传递字符串时,我将获得空值。请帮我。谢谢。

这是视图

owner

这是控制者

$(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();
                    }
                });
            });
    }

1 个答案:

答案 0 :(得分:0)

在Route.Config中添加路由

routes.MapRoute(
         name: "namesomething",/// as per your naming convention 
         url: "Home/UpdateUser/{username}",
         defaults: new { controller = "Home", action = "UpdateUser", username = UrlParameter.Optional }
      );