【问题标题】:@Url.Content with external js file@Url.Content 带有外部 js 文件
【发布时间】:2016-02-22 21:17:47
【问题描述】:

我正在使用blueimp upload 库。我在不同的javascript 文件中上传了代码。我正在使用ASP.Net MVC。我想通过Url.Content("~") 或其他东西(如果有的话)获得我的应用程序的根。我试过this 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,因为新的网址就像

/ProjectName/ControllerName/undefinedControllerName/ActionName

我尝试在fail 回调中检查相同的值,这是正确的。不知道为什么制作网址是错误的。

【问题讨论】:

    标签: javascript jquery asp.net-mvc


    【解决方案1】:

    我假设您的 &lt;input/&gt; 标签在表单内。如果是这样,您可以将空字符串作为url 传递。 blueimp upload 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
    

    【讨论】:

    • 我有嵌套表单,它正在查找父表单的操作而不是最接近的表单操作
    • 我认为嵌套form标签不是一个好主意。没有办法分开放置吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2021-11-18
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    相关资源
    最近更新 更多