3
我正在做類似於此文章dropzoneForm data with file的內容。我正在使用MVC 5/Razor語法。我能夠在調試時成功地看到我的模型數據,但是我的Request.Files始終爲0.當與其他表單數據結合使用時,不會使用dropzone.js發佈文件
在我的create.cshtml中,我有類似於此的代碼。我的模特很大,所以我不包括一切。
@using (Html.BeginForm())
@Html.AntiForgeryToken()
<div class="container">
<div class="dropzone" id="myDropzone"> HERE </div>
<div class="row botborder paddbot" id="addbuilder" style="display:none">
<div class="form-group">
<div class="col-md-4 ">
<span class="control-label ">Builder Name</span>
<span class="glyphicon glyphicon-asterisk text-danger" aria-hidden="true"></span>
@Html.EditorFor(model => model.BuilderModel.Builder, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BuilderModel.Builder, "", new { @class = "text-danger" })
</div>
<div class="col-md-4 ">
<span class="control-label">Builder's WebSite</span>
@Html.EditorFor(model => model.BuilderModel.BuilderWebSite, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BuilderModel.BuilderWebSite, "", new { @class = "text-danger" })
</div>
<div class="col-md-4 ">
<span class="control-label">Builder's Phone</span>
@Html.EditorFor(model => model.BuilderModel.BuilderPhone, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BuilderModel.BuilderPhone, "", new { @class = "text-danger" })
</div>
</div>
</div>
@結束行@
你可以看到這個想法。我剛纔添加一個DIV表格內爲用戶太刪除文件。
內create.cshtml我也有下面的JS代碼
Dropzone.options.myDropzone = {
url: 'ReviewModels/Create',
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 5,
maxFiles: 5,
maxFilesize: 1,
acceptedFiles: 'image/*',
addRemoveLinks: true,
init: function() {
dzClosure = this;
// for Dropzone to process the queue (instead of default form behavior):
document.getElementById("submit-all").addEventListener("click", function (e) {
alert('sub1');
dzClosure.processQueue();
});
//send all the form data along with the files:
this.on("sendingmultiple", function (data, xhr, formData) {
alert(formData)
});
}
}
與控制器我有以下的代碼和request.files沒有顯示任何文件,但該模型數據來成功跨越。我不確定我錯過了什麼。任何幫助將不勝感激,如果我可以提供更多的信息,我會這樣做。謝謝
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(HolderModel review)
{
if (review.BuilderModel.Builder ==null)
// if select existing builder
{
foreach (string fileName in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileName];
//Save file content goes here
var fName = file.FileName;
}