我正在尝试获取jQuery插件,
Uploadify,以使用ASP.NET MVC的过程。
<script type="text/javascript"> $(document).ready(function() { $('#fileUpload').fileUpload({ 'uploader': '/Content/Flash/uploader.swf','script': '/Placement/Upload','folder': '/uploads','multi': 'true','buttonText': 'Browse','displayData': 'speed','simUploadLimit': 2,'cancelImg': '/Content/Images/cancel.png' }); }); </script>
这似乎一切都很好。如果您注意到,“script”属性设置为my / Placement / Upload,这是我的展示位置控制器和我的上传操作。
主要的问题是,我无法让这个动作发射接收文件。我对该操作设置了断点,当我选择要上传的文件,它不会被执行。
我试着改变方法签名基于this article:
public string Upload(HttpPostedFileBase FileData) { /* * * Do something with the FileData * */ return "Upload OK!"; }
但这仍然不火。
任何人都可以帮助我写,并获得上传控制器操作的签名正确,所以它实际上会发射?然后我可以处理自己的文件数据。我只需要一些帮助获得方法动作。
解决方法
public string Upload(HttpPostedFileBase FileData) {}
是正确的 – uploadify上传的文件将绑定到FileData。不需要进入Request.Files来检索文件 – 这使得更难以模拟和测试。
如果你的操作根本没有触发(即尝试调试,并查看方法中的断点是否命中),那么你的问题很可能是“脚本”值 – 你在虚拟目录下运行?如果是这样,你需要把目录的名称放在前面。 Uploadify正在使用绝对路径。
即’script:’/ virtual_directory / Placement / Upload’
现在uploadify发送到http://localhost/Placement/Upload。
也尝试使用路由调试器(http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx)来检查路由映射到哪里。