5

ファイルを HttpPostedFileBase としてコントローラーに渡そうとしているので、ファイルを解析して情報をページに戻すことができます。たとえば、ユーザーが vCard をインポートできるようにして、連絡先作成フォームの PartialView に自動的に入力できるようにしたいと考えています。

ファイルを渡し、モデルにデータを入力してから、フォームの PartialView を返してページに表示することで、これを行いたいと思います。以下のようにjQueryを試しましたが、HttpPostedFileBaseを正しく渡すことができません(常にnull)。投稿したら、ファイルの InputStream にアクセスする必要があることに注意してください。

var file = "files=" + $("#fileInput").files[0];
$.post("/Contacts/UploadContact/", file, function (returnHtml) {
    alert(returnHtml);
    $("#contactContainer").html(returnHtml);
});

jQuery経由でファイルをHttpPostedFileBaseとしてコントローラーに投稿することは可能ですか?

4

2 に答える 2

12
    Same result can be achieved without `jquery` usage, merely you can use `XMLHttpRequest`
Example:

**Index.cshtml**

    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="@Url.Content("~/Scripts/scripts.js")" ></script>
    <input type="file" id="fileInput" />
    <input type='button' id='go' value="go" />

 $('#fileInput').on("change", function () {      

             var xhr = new XMLHttpRequest();
             var VideofileS = new FormData($('form').get(0));
             xhr.open("POST", "/Contact/UploadContact/");
             xhr.send(VideofileS);
             xhr.addEventListener("load", function (event) {
             alert(event.target.response);
            }, false);
   });   
    });
于 2013-10-31T08:07:58.360 に答える