无法获取对外部javascript文件的引用

时间:2015-01-17 23:13:19

标签: javascript jquery asp.net-mvc razorengine

我一直在靠墙撞墙几个小时,我需要帮助......

我希望能够在外部文件而不是内联中引用我的JS     @section脚本 用于关联的cshtml文件。

我尝试过以下两种方法,但都没有。

@Html.RazorJSInclude("~/Scripts/Categories/Create.js");

        $.getScript("~/Scripts/Categories/Create.js", function ()
        {
            contentCategoriesCreate();
        });

RazorJSInclude包不能像宣传的那样工作。在调试这个js文件时,我没有看到任何地方。

无论我尝试使用jQuery getScript方法,我都无法解决我指向的网址。

请注意,对于后者,我确实在Layout页面和Bundle.config文件中包含了一个包。

如果我将脚本包含在内联中,一切正常,但我想将内联JS与HTML分离。

我能做到这一点最简单的方法是什么?

修改

我按照建议添加了Url.Content,我忘记提及我已经尝试过了。它不起作用(见截图)。

enter image description here

我也尝试过Razor语法:@ Url.Content也没用。见下面的截图。 enter image description here

我不知道如此简单的事情应该怎么做,结果是一场噩梦......

任何其他建议都会有所帮助......

编辑2

最后,我所做的是将脚本包含在我的捆绑中。但是,这仍然没有奏效。这次,脚本加载没有错误,但是当我点击“创建”按钮时,点击功能不会触发。

以下是我的BundleConfig.js文件中的相关代码:

bundles.Add(new ScriptBundle("~/bundles/jsViews").Include(
             "~/Scripts/Categories/Create.js",
             "~/Scripts/AntiForgeryToken.js"));

以下是我的_Layout.js文件中的相关代码:

@Scripts.Render("~/bundles/jsViews")

以下是我的Create.cshtml文件中的相关代码:

@section Scripts {
    <script>
    $(document).ready(function ()
    {
        if (typeof contentCreateCategory == "function")
            contentCreateCategory();
    });
</script>
}

以下是我的外部JS文件中的相关代码:

function contentCreateCategory()
{
    function contentCategoriesCreate()
    {
        $('#btnCategoryCreate').click(function (e)
        {
            var form = $('#form1');
            if (form.valid())
            {
                createCategory();
            }

            return false;
        });
    }
}

function createCategory()
{
    var category_Input = {
        CategoryDescription: $('#CategoryDescription').val()
    };

    var Url = $("#url").val();

    $.ajax({
        url: Url,
        data: AddAntiCSRFToken(JSON.stringify(category_Input)),
        dataType: "html",
        type: "POST",
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        async: false,
        success: function (data, status)
        {
            // Record added
        },
        error: function (data, status, xhr)
        {
            alert(status + '\n' + xhr + '\n' + data);
        }
    });
};

最后,这里是证明JS正在加载的屏幕截图,但是当我点击“创建”按钮时没有任何反应。再次注意,当我在Create.cshtml文件中内嵌脚本时,一切正常。我不能做比我做的更多的事情。我给了代码&amp;截图。我希望某人可以让我知道我需要做些什么来让这个工作...... enter image description here

0 个答案:

没有答案