我有两个自定义的 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/