@Url.外部js文件的内容



我正在使用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上传使用formaction方法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

最新更新