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 に答える