需要使用 ajax post 将对象列表和其他对象发送到控制器

问题描述

需要使用 ajax post 方法将对象和其他对象的列表发送到控制器。当我尝试使用视图模型使用 ajax post 方法发送时,列表始终为空。下面是代码。 JavaScript 代码:

function SubmitForm() {        
    var ServiceDefinition = $("#frmService").serialize();
    var clinicServiceList = [];
    $(".chkUserLocation:checked").each(function () {                   
        var checkBoxId = $(this).prop("id");
        checkBoxId = "#accordion" + checkBoxId;
        var emergencyPrice = $(checkBoxId).find(".clsEmergencyPrice").val();
        var opdPrice = $(checkBoxId).find(".clsOpdPrice").val();
        var ipdPrice = $(checkBoxId).find(".clsIPDPrice").val();
        var statPrice = $(checkBoxId).find(".clsStatPrice").val();
        var clinicServiceId = $(checkBoxId).find(".hdnClinicServiceId").val();
        clinicServiceList.push({
            'OpdPrice': opdPrice,'IpdPrice': ipdPrice,'ERPrice': emergencyPrice,'StatPrice': statPrice,'LocationId': $(this).prop("id"),'ClinicServiceId': clinicServiceId
        });            
    });
    var data1 = { 'clinicServices': clinicServiceList };
    var data = JSON.stringify(data1);
    var serviceDefination = { 'ServiceDefinition': ServiceDefinition };
    var serviceViewModel = {
        'ServiceDefinition': ServiceDefinition,'clinicServices': JSON.stringify(clinicServiceList)
    }
    $.ajax({
        url: '@Url.Action("ServiceForm","Service")',type: "POST",dataType: "json",contentType: 'application/json; charset=utf-8',data: serviceViewModel,async: true,success: function (msg) {
          
        },error: function (result) {
          
        }
    });  
}

控制器代码:

public ActionResult ServiceForm(ClinicServiceViewModel serviceViewModel)
{
    return json(result);
}

型号代码:

    public class ClinicServiceViewModel 
{
    public ClinicServiceViewModel()
    {
        ServiceDefinition = new ServiceDefinition();
        ClinicServices = new List<ClinicService>();
    }
    public ServiceDefinition ServiceDefinition { get; set; }
    public List<ClinicService> ClinicServices { get; set; }

}

任何一个我犯错的指南?

解决方法

请尝试:

var serviceViewModel = { '服务定义':服务定义, “诊所服务”:诊所服务列表 }

数据:JSON.stringify(serviceViewModel),

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...