Jquery 如何从多个附件创建JSON

Jquery 如何从多个附件创建JSON,jquery,json,asp.net-mvc,Jquery,Json,Asp.net Mvc,我有一个表单,用户可以使用此代码添加一个或多个附件 <div id="attachments"> </div> <a href="#" id="addAttachment">Add attachment</a> <script> $("#addAttachment").click(function () { var strChooseFile = "<table><tr><td><in

我有一个表单,用户可以使用此代码添加一个或多个附件

<div id="attachments">
</div>
<a href="#" id="addAttachment">Add attachment</a>

<script>
$("#addAttachment").click(function () {
    var strChooseFile = "<table><tr><td><input type='file' name='PostedFiles' size='30' title='Choose file ...'></td>";
    strChooseFile += "<td><input type='text' name='FileDescriptions' size='50' title='File descriptions ...'></td>";
    strChooseFile += "<td><input type='button' name='btnAttachmentRemove' id='btnRemoveAttachment' value='Remove' ></td></tr></table>";

    inputFile = $(strChooseFile);
    inputFile.clone(true).appendTo("#attachments");
});
</script>
正如您在上面的代码中看到的,我在准备
PostedFiles
FileDescriptions
时遇到了一个问题。发送到控制器后,值为空


如何从
$(“input[name=PostedFiles]”)数组中准备
PostedFiles
,以及
FileDescriptions

您能给我们一个输入值的示例吗?以及您希望如何对它们进行“分析”以提交到服务器。另外,javascript中的标记让我头疼。可能值得将所有这些都放到JSFIDLE中,以便我们可以帮助您重新构造它。输入[name=PostedFiles]是输入文件吗?输入[name=FileDescriptions]input?首先
m_data.append(“PostedFiles”,“$”([input[name=PostedFiles]))).val()(和下一行)不起作用。将表单(包括文件)序列化将是最简单的方法!-推断是的,PostedFiles是一个
,而FileDescriptions是
,正如您在脚本中看到的那样。它是动态的,可以超过1谢谢你@StephenMuecke,它有效,你有多聪明:)你能把它作为一个答案添加吗。顺便说一句,我使用
$(“#frmInvoice”).serialize(),
对表单进行了序列化,但它不起作用。你能在回答中解释一下吗?
$("#btnAddInvoice").click(function (e) {
    if ($("#frmInvoice").validate().form()) {
        var m_data = new FormData();
        m_data.append("SubsidiaryClientID", $("#SubsidiaryClientID").val());
        m_data.append("SubsidiaryClientNo", $("#SubsidiaryClientNo").val());
        m_data.append("SubsidiaryClientName", $("#SubsidiaryClientName").val());
        m_data.append("PostedFiles", $("input[name=PostedFiles]").val()); // how to parse this to json?
        m_data.append("FileDescriptions", $("input[name=FileDescriptions]").val()); // how to parse this to json?

        $.ajax({
            type: "POST",
            url: "@Url.Content("~/Invoice/AddInvoice")",
            data: m_data,
            contentType: false,
            processData: false,
            dataType: "json",
            cache: false
        }).done(function (data) {
            alert(data);
            if (!data.message) {
                $("#invoiceList").html(data);
                $("#addInvoiceModal").modal("hide");
            }
        });
    }
});