考慮下面的代碼片段的onclick存儲相同的值多次
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(MyViewModel viewModel)
{
if (ModelState.IsValid)
{
//map properties here
using (var context = new MyEntities())
{
context.Users.Add(user);
context.SaveChanges();
}
if (Request.Files.Count > 0)
{
foreach (string fileName in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileName];
if (file != null && file.ContentLength > 0)
{
//do checks and upload file here
}
}
}
}
return RedirectToAction("Index", "Home");
}
的形式可以提交作爲一個獨立的或與隨後獲得上傳到服務器上的文件。現在我的問題是如果我提交表單沒有任何文件或只有一個文件,然後一切按預期工作。但是,用戶一次可以上傳多個文件,這就是問題出現的地方。文件會上傳,但我在數據庫中爲該特定表單獲取了多個條目。例如,如果用戶上傳三個文件,我會在數據庫中得到三個完全相同的條目。
所以我的問題是如何解決這個問題?
在我使用DropZoneJs
和調用該方法的客戶端作爲
<script>
Dropzone.autoDiscover = false;
var myDropZone = new Dropzone("#dzUpload", {
url: "/Home/Create",
autoProcessQueue: false,
previewsContainer: ".preview",
});
$("#submit-all").attr("type", "button").on('click', function (e) {
e.preventDefault();
e.stopPropagation();
if (myDropZone.getQueuedFiles().length > 0) {
myDropZone.options.autoProcessQueue = true;
myDropZone.processQueue();
}
else {
$("#dzUpload").submit();
}
});
</script>
我也遇到this的問題,但我仍然有同樣的問題
這正是我使用的問題已修復 – Code