我有一个可以使用拖放来上载文件的部分视图。 我写了一个这样的脚本:在部分视图中的jquery拖放问题
<script>
$(function() {
$('#dropArea').filedrop({
url: '@Url.Action("Desert1Content")',
allowedfiletypes: ['image/jpeg', 'image/png', 'image/gif'],
allowedfileextensions: ['.jpg', '.jpeg', '.png', '.gif'],
paramname: 'files',
maxfiles: 5,
maxfilesize: 5,
dragOver: function() {
$('#dropArea').addClass('active-drop');
},
dragLeave: function() {
$('#dropArea').removeClass('active-drop');
},
drop: function() {
$('#dropArea').removeClass('active-drop');
},
afterAll: function(e) {
$('#dropArea').html('file uploaded successfully');
},
uploadFinished: function(i, file, response, time) {
$('#uploadList').append('<li class="list-group-item">' + file.name + '</li>');
}
});
});
</script>
此代码工作正常,当我独立运行的页面。但是,当在一个视图这个局部视图加载和我将文件拖到上传区我得到这个错误:
这是我的控制器:
public PartialViewResult Desert1Content(IEnumerable<HttpPostedFileBase> files)
{
if (files!=null)
{
foreach (var file in files)
{
string filePath = Guid.NewGuid() + Path.GetExtension(file.FileName);
file.SaveAs(Path.Combine(Server.MapPath("~/UploadFiles"), filePath));
}
return PartialView();
}
return PartialView();
}
更新, 我想我找到了问题。但不是解决方案。问题是我添加了jquery.js文件到我的共享布局。运行部分视图而不使用共享布局没有任何问题。当我在这个局部视图上使用共享布局(用于测试)时。问题出现。事情是,要做到这一点,jquery-1.10.2.min.js和jquery.filedrop.js都应该添加在这个页面上。如果在共享布局中引用文件,该脚本将不起作用。这会造成冲突并造成错误。
你使用的是什么浏览器启动这一要求?它可能与patialView本身无关。而不是实施Ajax上传功能...尝试在不同的浏览器(火狐应该工作) –
我试过4种不同的浏览器,包括火狐。每一个他们返回相同的错误 –