将参数值从 jquery 数据表 ajax 传递给控制器

Posted

技术标签:

【中文标题】将参数值从 jquery 数据表 ajax 传递给控制器【英文标题】:Pass the Parameter value to the controller from the jquery datatable ajax 【发布时间】:2020-11-09 17:12:58 【问题描述】:

我有一个名为 SendAjaxParameter 的控制器,我在其中将值分配给 Employee 类(这些只是一些静态值)。像这样:

public ActionResult GetParameter(string name)
        
            List<Employee> Employee_Details = new List<Employee>();
            string valueofname = name;
            Employee emp = new Employee
            
                Name = "John",
                Surname = "Doe"
            ;
            Employee emp1 = new Employee
            
                Name = "Mary",
                Surname = "Addinson"
            ;

            Employee_Details.Add(emp);
            Employee_Details.Add(emp1);
            return Json(new  data = Employee_Details, Message = "Hello all" , JsonRequestBehavior.AllowGet);
        

我想从 jquery 数据表的 ajax 传递参数。这是一个变量值。 像这样:

<script src="~/Scripts/datatable/DataTables-1.10.20/js/jquery.dataTables.min.js"></script>
        <script src="~/Scripts/datatable/DataTables-1.10.20/js/dataTables.jqueryui.min.js"></script>
        <script>
        $(document).ready(function () 
            var nameValue = "TestValue";
            $("#mytable").DataTable(
                "ajax": 
                    "type": "POST",
                    "url": "/SendAjaxParameter/GetParameter",
                    "data":  name: nameValue ,
                    "contentType": "application/json; charset=utf-8",
                    "dataType": "json"
                ,
                "columns": [
                     "data": "Name" ,
                     "data": "Surname" 
                ]
            );
        );
    </script>

我该怎么做?我想将此值用于进一步处理。就像我尝试过的上面的代码一样,但它给了我错误请帮助! 像这样的错误: 加载资源失败:服务器响应状态为 500 () 并在查看警报框是这样的:

【问题讨论】:

【参考方案1】:

.ajax 调用中将data 值添加为JSON 而不是string

data: name: nameValue,

(或)

您可以在类似于下面的示例中将其作为function 尝试为docs says

$('#mytable').dataTable(
  "ajax": 
    "url": "/SendAjaxParameter/GetParameter",
    "contentType": "application/json",
    "type": "POST",
    "data": function (data) 
      return JSON.stringify(data);
    
  
);

【讨论】:

我附上了图片并按照您的建议更改了代码 更新了我的答案。您能否根据Network 选项卡中的请求数据检查您对服务器端的期望。 但是我们没有将 nameValue 的值传递给函数...我很困惑你能解释一下吗? 在控制器中获取空值 好的,我将解释这个场景,我的 ui 中有一个下拉列表,用户从下拉列表中选择一个值,根据该值我向控制器请求数据,我想分配该数据到数据表。所以,我做了一个单独的项目,我试图从 DataTable 的 ajax 传递静态值

以上是关于将参数值从 jquery 数据表 ajax 传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery AJAX将字符串数组传递给具有可变数量参数的webmethod

如何使用 ajax 传递 from.serialize() 和数组值?

jQuery Ajax 帖子未传递参数

jquery Ajax 调用 - 数据参数未传递给 MVC 控制器操作

如何将值从 django 模板化 html 传递到 ajax

将模型从 jquery ajax 传递给控制器