在参数ASP.NET中传递列表javascript

时间:2018-03-12 20:32:58

标签: javascript jquery asp.net asp.net-mvc

我有一个带输入的模态,我给一些电子邮件添加数字并添加到列表中,之后我想将这个电子邮件列表传递给我发送电子邮件的功能。

        var listEmails = [];
    document.getElementById("addEmail").onclick = function () {

        var text = document.getElementById("recipient-email").value;

        $("#Listmail").append('<li>' + text + '</li>');

        listEmails.push(text);

    }

    document.getElementById("sendEmail").onclick = function () {


       @*location.href = '@Url.Action("TestSendReport", "ProductMarketplace")?emails='+listEmails;

    }

这是我在Controller中的功能,它接收要发送的电子邮件列表

         public void TestSendReport(List<string> ListMails)

2 个答案:

答案 0 :(得分:1)

请尝试以下代码并尝试使用jQuery Ajax调用控制器方法

    var list= [];
document.getElementById("addEmail").onclick = function () {

    var text = document.getElementById("recipient-email").value;

    $("#Listmail").append('<li>' + text + '</li>');

    list.push(text);

}

document.getElementById("sendEmail").onclick = function () {
    var jsonText = JSON.stringify({ list: list});

 $.ajax({
            type: "POST",
            url: "ProductMarketplace/TestSendReport",
            data: jsonText,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function() { alert("success"); },
            failure: function() { alert("failed"); }
        });

}

并使用像这样的控制器方法,

[WebMethod]
        public void TestSendReport(List<string> list)
        {

        }

答案 1 :(得分:0)

document.getElementById("sendEmail").onclick = function () {
   location.href = '@Url.Action("TestSendReport", "ProductMarketplace")?emails=' + 
      encodeURI(JSON.stringify(listEmails));
}

public void TestSendReport(List<string> emails)
{
}