Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax将字符串数组传递给mvc控制器_Javascript_C#_Jquery_Ajax_Asp.net Mvc 4 - Fatal编程技术网

Javascript 使用ajax将字符串数组传递给mvc控制器

Javascript 使用ajax将字符串数组传递给mvc控制器,javascript,c#,jquery,ajax,asp.net-mvc-4,Javascript,C#,Jquery,Ajax,Asp.net Mvc 4,我需要将字符串列表从multiple select传递给控制器。虽然这个要求在我看来很简单,但在过去的一个小时里,我在这件事上还是伤了脑筋。我对此做了公平的研究,但未能成功 下面是我的Javascript代码。请忽略这些评论。我成功地获取了多重选择中的项目列表。在执行ajax调用时,出现错误“Object reference未设置对象实例” function submitForm() { var selected = $('#selectedTasks option').map(func

我需要将字符串列表从multiple select传递给控制器。虽然这个要求在我看来很简单,但在过去的一个小时里,我在这件事上还是伤了脑筋。我对此做了公平的研究,但未能成功

下面是我的Javascript代码。请忽略这些评论。我成功地获取了多重选择中的项目列表。在执行ajax调用时,出现错误“Object reference未设置对象实例”

function submitForm() {
    var selected = $('#selectedTasks option').map(function(){ 
        return this.value 
    }).get()
    var postData = { selectedTasks : selected } //corrected as suggested

    //selectedTasks = JSON.stringify({ 'selectedTasks': selected });
    alert(postData);

    $.ajax({
        type: "POST",
        //contentType: 'application/json; charset=utf-8',
        url: '@Url.Action("AssignTasks", "MonthEndApp")',
        dataType: 'json',
        data: postData,
        traditional: true,
        success: function (data) {                
            alert("Success");
        },
        error: function (xhr) {                    
            alert(xhr.responseText);
        } 
    });
}
MonthEndAppController.cs

[HttpPost]
public void AssignTasks(List<String> selectedTasks)
{
    //do something
}
[HttpPost]
公共任务(列出选定任务)
{
//做点什么
}
有人能告诉我哪里出了问题吗?有人能告诉我哪里出了问题吗


编辑:根据Rory先生的建议,我已经对java脚本进行了更改。现在java脚本部分工作得非常好。但是当发出ajax请求时,控制器没有被调用。如果对控制器的调用出现错误,有人能帮我解决吗?

调用了
AssignTasks
操作所期望的参数
所选任务
,而非

var postData = { selectedTasks: selected };

还请注意,在调试JS中的任何内容时,您应该始终使用
console.log()
而不是
alert()
,因为后者将所有类型强制为字符串,这意味着您没有看到实际值的真实表示。

您尝试过
string[]
而不是
列表

谢谢你的建议。这完全是我的错误。谢谢你指出。它确实有效(javascript部分)。但是控件在调试时没有移动到控制器。它只是显示一个警报“成功”“,但不知道为什么控件没有移动过来。您认为控制器有问题吗?@user3173346而不是[httppost]尝试[webmethod]?