2017-08-13 65 views
0

我有一个可以使用拖放来上载文件的部分视图。 我写了一个这样的脚本:在部分视图中的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> 

此代码工作正常,当我独立运行的页面。但是,当在一个视图这个局部视图加载和我将文件拖到上传区我得到这个错误:

error

这是我的控制器:

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都应该添加在这个页面上。如果在共享布局中引用文件,该脚本将不起作用。这会造成冲突并造成错误。

+0

你使用的是什么浏览器启动这一要求?它可能与patialView本身无关。而不是实施Ajax上传功能...尝试在不同的浏览器(火狐应该工作) –

+0

我试过4种不同的浏览器,包括火狐。每一个他们返回相同的错误 –

回答

0

尝试使用

<script type="text/javascript" src="<path to your .js file>" defer></script>

defer属性,它仅适用于外部脚本作品(即SCR必须在脚本的声明存在),直到页面加载将推迟脚本的执行。 w3schools defer attribute

Since partial views load before any parent view,使用defer将确保你想要什么。不管怎么说,如果这仍然不起作用,我建议你只需引用你的Javascript文件(JQuery和其他脚本)在他们内部的部分视图中需要。

试试这个阅读,这也: How to use jquery in partial view asp.net mvc 4