0

在下面的代码中,首先允许用户从下拉列表中选择选项,然后允许浏览文件。代码:

  function choice() {
   var box = dhtmlx.modalbox({
       text: "<div id='form_in_box'><div>Choose a File to Convert <hr/><label>Filename: <input type='file' name='file' id='file' style='width: 400px; height: 27px;'></label><br></div><div><span class='dhtmlx_button'><input type='submit' value='Create PDF' style='width: 86px' onclick='Convert(this)'></span><span class='dhtmlx_button'><input type='button' value='Cancel' onclick='close_file(this)' style='width:80px;'></span></label></div></div>",
       width: "300px"
   });

}

 function Convert(box) {
   var ch = document.getElementById('choice');
   var file = document.getElementById('file');
   if (file.value == "") {
       alert("Choose a file to convert");
       return false;
   }

   dhtmlx.modalbox.hide(box);
   var fd = new FormData();
   fd.append('file', file.files[0]);
   var xhr = new XMLHttpRequest();
   xhr.open('POST', '/FileUpload/Convert', true);
   xhr.onreadystatechange = function () {
       if (xhr.readyState == 4 && xhr.status == 200) {
           alert('File successfully conveted to PDF');
       }
   };
   xhr.send(fd);

在 ch 中,下拉选项被保存。我想将 ch 值发送到控制器控制器代码:

public ActionResult Convert(HttpPostedFileBase file, FormCollection data)
    {
        string choice = data["choice"];

我怎样才能发送它?

4

1 回答 1

2

您可以将其添加到FormData

var fd = new FormData();
fd.append('file', file.files[0]);
fd.append('choice', ch.value);

您的控制器操作现在可能如下所示:

public ActionResult Convert(HttpPostedFileBase file, string choice)
{
    ...
}
于 2013-04-25T06:28:59.723 回答