【发布时间】:2013-02-03 23:11:53
【问题描述】:
我尝试在我的 MVC4 项目中实现Fineuploader,但它总是无法上传。我做了什么:
在我的视图中添加了 css 和 js 文件:
<link href="~/Content/fineuploader.css" rel="stylesheet" />
<script src="~/Scripts/js/util.js"></script>
<script src="~/Scripts/js/button.js"></script>
<script src="~/Scripts/js/dnd.js"></script>
<script src="~/Scripts/js/handler.base.js"></script>
<script src="~/Scripts/js/handler.form.js"></script>
<script src="~/Scripts/js/handler.xhr.js"></script>
<script src="~/Scripts/js/header.js"></script>
<script src="~/Scripts/js/jquery-plugin.js"></script>
<script src="~/Scripts/js/uploader.basic.js"></script>
<script src="~/Scripts/js/uploader.js"></script>
添加了上传按钮和脚本执行的代码(我认为这不对?)
<script>
function createUploader() {
var uploader = new qq.FineUploader({
element: document.getElementById('fine-uploader'),
debug: true,
request: {
endpoint: '/Upload/UploadFile/'
}
});
}
window.onload = createUploader;
</script>
将 C# 文件添加到我的项目 FineUpload.cs、FineUploadResult.cs 和控制器 UploadController.cs。我还添加了一条到控制器的路由:
routes.MapRoute(
name: "upload",
url: "Upload/UploadFile",
defaults: new { controller = "Upload", action = "UploadFile" }
);
控制器是:
public class UploadController : Controller
{
[HttpPost]
public FineUploaderResult UploadFile(FineUpload upload, string extraParam1, int extraParam2)
{
...
}
}
但是UploadFile 永远不会在服务器上调用。
【问题讨论】:
-
尝试在您的端点中将
url: "Upload/UploadFile"替换为url: "/Upload/UploadFile" -
我做了,但控制器没有执行。我在开头添加了路线。也许它与动作中的参数有关?
-
是的。可以这样试试吗:
public FineUploaderResult UploadFile(FineUpload upload, string extraParam1="", int? extraParam2=0) -
不成功:它总是路由到另一个控制器 /Account/Login?ReturnUrl=...
-
我将fineuploader大文件的示例代码添加到我的web.config文件中。这是路由的问题!现在可以了。
标签: c# javascript asp.net asp.net-mvc-4 upload