javascript - 如何将我的 javascript 文件加载到嵌套在 View 中的局部 View 中? MVC5

标签 javascript asp.net-mvc razor

我有两个自定义的 javascript 文件(viewJscript.js 和 partialJscript.js)。在 View 中,我简单地说:

<script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/viewJscript.js"></script>

这很好用。现在,我正尝试在嵌套在 View 内的部分 View 中执行相同的操作:

    <script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>
    <script src="~/Scripts/partialJscript.js"></script>

而且它不起作用。 那么我应该怎么做才能在局部 View 中加载 partialJscript.js?

我忘了说局部 View 是动态的,在从 View 中单击按钮时打开

编辑 这是我在 partialJscript.js 文件中的代码:

$(function () {
        var divSensorNames = $("#sensorNames");
        $('.webgrid2-table th:first-child,  .webgrid2-table td:first-child').hide();

        $('.webgrid2-table th:nth-child(2),  .webgrid2-table td:nth-child(2)').hide();

        $('.webgrid2-table th:nth-child(3),  .webgrid2-table td:nth-child(3)').hide();

        $('#AddNewSensor').on('click', function () {
            $('#sensorList').load('@Url.Action("ChooseSensorList", "PredefinedViews")');
        });

        $('.editSensorMode').on("click", function () {
            var tr = $(this).parents('tr:first');
            //var SensorID = tr.find("#SensorID").html();
            var PredefinedViewItemID = tr.find("#PredefineViewsItemID").html();
            var urlEditModes = "@Url.Action("EditSensorMode", "PredefinedViews", new { pviId = "PredefinedViewItemID" })";
            //urlEditModes = urlEditModes.replace("SensorID", SensorID);
            urlEditModes = urlEditModes.replace("PredefinedViewItemID", PredefinedViewItemID);
            $('#sensorList').load(urlEditModes);
        });

        $(".sensor-delete-table").on("click", function () {

            var tr = $(this).parents('tr:first');
            var PredefineViewsItemID = tr.find("#PredefineViewsItemID").html();
            var PredefineViewID = tr.find("#PredefineViewID").html();
            var amount = parseInt($("[data-id='" + PredefineViewID + "']").text());
            //amount = amount + anyNumber; This also works!
            //var rowCountBefore = $('.webgrid2-table tr').length;

            var flag = confirm('@Html.Localize("deleteCheck")');
            var urlShowNewSensors = "@Url.Action("ShowSensorNames", "PredefinedViews", new { predefinedViewID = "PredefineViewID" })";
            urlShowNewSensors = urlShowNewSensors.replace("PredefineViewID", PredefineViewID);
            if (PredefineViewID != "" && flag) {
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: '@Url.Action("DeleteSensor", "PredefinedViews")',
                    data: JSON.stringify({ pviID: PredefineViewsItemID, pID: PredefineViewID }),
                    dataType: "json",
                    complete: function (result) {

                        var urlShowSensors = "@Url.Action("ShowSensorNames", "PredefinedViews", new { predefinedViewID = "PredefID" })";
                        urlShowSensors = urlShowSensors.replace("PredefID", PredefineViewID);
                        $(divSensorNames).load(urlShowSensors);

                        amount--;
                        $("[data-id='" + PredefineViewID + "']").text(amount.toString());
                });
            }
        });
    });

最佳答案

换句话说,您正在使用 AJAX 引入局部 View 的 HTML。出于安全原因,浏览器不允许运行动态插入的 HTML 中的脚本标记。您要么必须在主视图中包含脚本,要么在 AJAX 回调中通过 JavaScript 动态加载脚本。您可以使用 Require.js 或 Modernizr.load 之类的东西来做到这一点。

关于javascript - 如何将我的 javascript 文件加载到嵌套在 View 中的局部 View 中? MVC5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568318/

相关文章:

javascript - 不使用 ssl 发送应用请求

javascript - C# Selenium Webdriver JavaScriptExecutor 提示窗口

asp.net-mvc - 如何在提交时将值传递给 Controller ​​?带 Razor 的mvc

javascript - 通过 REST API 的 Google 跟踪代码管理器 (GTM) 数据层

c# - 两个具有不同数据类型的 MapRoutes

asp.net-mvc - ASP MVC 5 图像显示

jquery - 欺骗 ASP.NET 认为请求是 jQuery 文件上传的 Ajax 请求

asp.net-mvc - MVC3 十进制在编辑时被截断为 2 位小数

jquery - Html.ValidationMessageFor 带有图像和工具提示

javascript - setDoc 函数返回什么?