これに問題があります。私は、コントローラに文字列変数の値とともにCSVファイルを送る必要があります。MVC6 - Ajaxを使用してCSVファイルと文字列をコントローラにアップロード
フォームの送信ボタン(送信のみ)でファイルを送信できました。また、文字列変数をコントローラに送信することもできました(これはajax投稿を使用しています)。動いていない。
このフォーラムでは、ファイルのダウンロード/アップロード(すべてのファイルタイプ)を検索していますが、この時点では私が探していたものは見つかりませんでした。私が一番近かったのはthisです。
これはCSHTML形式である:ここでは
<form asp-action="FileIndexView"
asp-controller="SuburbsAndPostcodesAdmin"
method="post"
enctype="multipart/form-data">
<div class="form-horizontal">
<div class="form-group">
<label class="col-md-4 control-label">Select the Suburbs and Postcodes latest CSV File:</label>
<input type="file"
name="CSVFile"
id="txtFileUpload"
class="col-md-8 control-label" />
</div>
<div class="form-group">
<input type="submit"
name="Submit"
value="Submit"
class="col-md-1 btn btn-primary"
disabled="disabled"
id="SubmitFile" />
</div>
</div>
</form>
はjavascriptのです:
[HttpPost]
public IActionResult FileIndexView(IFormFile file, string connId)
{
...stuff
}
そのMVC6ので、私はIFormFileを使用しています:
//On button click send the connection id back to method FileIndexView.
$('#SubmitFile').click(function (e) {
e.preventDefault(); // <------------------ stop default behaviour of button
var fileUpload = document.getElementById("txtFileUpload");
var url = "/SuburbsAndPostcodesAdmin/FileIndexView";
var connId = $.connection.hub.id;
//$.post(url, {"fileUpload": file, "connId": connId });
$.ajax({
type: "POST",
url: url,
data: { file: file, "connId": connId },
processData: false,
contentType: false,
success: function (result) {
alert('Yay! It worked!');
},
error: function (result) {
alert('Oh no :(');
}
});
});
、ここではIActionResultはコントローラです。
ファイルのIDの内容を変数に入れようとしましたが、失われてしまいました...私も$ .postを使ってみました。文字列変数のみを送信すればコントローラに戻ることができます。
私はファイルを送信しようとしましたが、IFormFileの引数と文字列の引数を持つコントローラがAjaxの投稿を受け付けるようにする方法を教えてください。
[HttPost] IActionResultはどのように見えますか?私はリターンを管理するビューモデルを作りますか? – si2030
FormDataのブラウザサポートは、IE 10から始まります。しかし、通常のHTTPリクエストを使用してフォームを送信できるので、フォールバックソリューションは簡単に提供する必要があります。 –