javascript - 在 ASP.Net MVC 5 中将 javascript 数组从 View 传递到 Controller

标签 javascript c# asp.net asp.net-mvc-5

我将数据从 View 传递到 Controller 以发布到数据库,我使用 Entity Framework 的数据库优先方法,因此模型设置正常, 我有一个空数组 var formArray = [];。输入字段中的数据被捕获为

var OPDNo = $('[name= OPDNo]').val();
var Re = $('[name= re]').val();
var Le = $('[name= le]').val();

在我看来,我有输入变量,我已将它们放入 formData{} 中,如下所示

var formData = {
'OPDNo': OPDNo,
'VAFRE': Re,
'VAFLE': Le
};

OPDNo、Re、Le 都是输入字段。我使用 Ajax 传递数据,如下所示:

if (formData != null) {
                $.ajax({

                    url: '/EMR/SaveVisionScreening',
                    type: 'POST',
                    dataType: 'json',
                    contentType: 'application/json',
                    data: JSON.stringify({ formArray: formData, selectValues: selectValues }),
                    success: function () {
                        showNotification("Record Saved Successfully", "info", true);

                    }
                });
            }

在我的 Controller 中,

[HttpPost]
        public void SaveVisionScreening(string formArray, string [] selectValues)
        {
//Code...

         }

当我调试时, Controller 在 string formArray 上返回 null,我还设置了 ***traditional: true ** 但它仍然是 null。 我在这里检查了一些解决方案,但它并没有帮助我解决它。

最佳答案

您可以创建一个代表您的输入的类,而不必具有两个输入参数。例如,您可以创建一个像这样的类:

 public class FormData
 {
    public string OPDNo { get; set; }

    public string VAFRE { get; set; }

    public string VAFLE { get; set; }

    public string[] selectValues { get; set; }
 }

然后像这样修改你的 JS 代码:

        var selectValues = [];
        selectValues.push('item1');
        selectValues.push('item2');

        var formData = {
            OPDNo: 'OPDNo',
            VAFRE: 'Re',
            VAFLE: 'Le',
            selectValues: selectValues
        };

        $.ajax({

            url: '/home/SaveVisionScreening',
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            data: JSON.stringify(formData),
            success: function () {
                showNotification("Record Saved Successfully", "info", true);

            }
        });

然后你的 Controller 方法如下:

   [HttpPost]
    public void SaveVisionScreening(FormData formData)
    {


    }

查看下面的结果:enter image description here

关于javascript - 在 ASP.Net MVC 5 中将 javascript 数组从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60410109/

相关文章:

javascript - 是否可以通过 Javascript 终止 SharePoint 工作流?

javascript - 如何在点击时将图像更改为其他图像?

c# - 什么是文本文件中的 ?

javascript - 至少一个字符和一个数字且重复不超过两个的正则表达式

c# - 连接字符串而不重复分隔符

javascript - 将 DOMContentLoaded 监听器附加到动态创建的窗口

javascript - 不在下拉列表中显示所选项目

c# - 当 DefaultValueHandling 为 Ignore 时,强制单个 JSON 属性始终序列化

c# - WCF:如何为类型中的类型构造 DataContract

c# - 扩展 WPF 工具包 - 如何添加对项目的引用?