我正在使用blueimp upload
库。我在不同的javascript
文件中上传了代码。我正在使用ASP.Net MVC
.我想通过Url.Content("~")
或其他东西(如果有的话)获取我的应用程序的根目录。我尝试了这个 amswer,但它给了我字面上的"@Url.Content("~")"。所以我想使用data-*
html。现在我的文件上传看起来像
<input type="file" name="files[]" data-root ='<%= @Url.Content("~/") %>' multiple/>
上传代码是
$('input:file', subscriber).fileupload({
dataType: 'json',
url: $(this).data('root')+'ControllerName/ActionName',
done: function (e, data) {
if (!data || !data.result || !data.result.length) {
alert("Error occured when uploading the file");
return;
}
if (data.result[0].error) {
alert("Error occured. " + data.result[0].error);
return;
}
LoadHtmlInDiv('AssigneeDocList', '/Assignee/DocumentList');
},
fail: function (e, data) {
alert("Error occured when uploading the file");
}
});
但它给了Error 404
,因为新的 URL 就像
/ProjectName/ControllerName/undefinedControllerName/ActionName
我试图fail
回调中检查相同的值,这是正确的。不知道为什么制作网址是错误的。
我假设您的<input/>
标签在表单内。如果是这样,您可以只将空字符串作为url
传递。 blueimp upload
上传使用form
的action
方法URL作为基础,并在其附加自己的URL部分。这就是为什么你会得到这样的网址
/ProjectName/ControllerName/undefinedControllerName/ActionName
在我自己的代码中,我声明了我的表单,如下所示 -
@using (Html.BeginForm("Upload", "Document", FormMethod.Post, new { enctype = "multipart/form-data" }))
我的input
标签在里面,就像——
<input id="fileupload" type="file" name="file" />
和JavaScript -
$('#fileupload').fileupload({
url: '',
dataType: 'json',
add: function (e, data) {},
done: function (e, data) {},
progressall: function (e, data) {}
});
我已经删除了函数实现,但你可以得到这个想法。此将文件发布到
/Document/Upload