Javascript 不能在 PartialView 上运行

Javascript does not run on PartialView

本文关键字:运行 PartialView 不能 Javascript      更新时间:2023-09-26

我正在使用MVC4,C#和Razor来制作一个简单的Web应用程序。

在我的控制器中,我有一个返回向用户显示的部分视图的方法,在本例中为模式弹出窗口:

public ActionResult GetPackageDetails(int id)
{ 
    return PartialView("_EditPackageModal", new ModalEditPackage());
} 

部分视图是一个模式弹出窗口,按预测显示,但不运行任何 javascript:

@model SuperApp.Model.ModalEditPackage
<div class="modal fade bs-example-modal-lg" id="editPackageModal" tabindex="-1" role="dialog" aria-labelledby="editPackages" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="myModalLabel">Edit Package @Model.packageName</h4>
            </div>
            <div class="modal-body">
                <div>
                    <label class="control-label">Package Name: </label>
                    <input type="text" class="form-control" id="package-name" placeholder="@Model.packageName">
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary">Save changes</button>
            </div>
        </div>
    </div>
</div>

这是我希望在部分视图上运行的javascript代码:

<script>
    $("input").click(function () {
        alert("hello world!");
    });
</script>

看完这个问题:

  • 不要在 Partial View 中运行 javascript 函数

意识到我必须在分部视图中包含脚本。总结一下:

  1. 分部视图无法运行我的项目中的 JS 代码。
  2. 分部视图仅运行使用 <script> 标记在分部视图中直接指定的 JS 代码

现在,在这个例子中,这很好,但在现实世界中,我有几个脚本在部分视图上工作,它们相当大。此外,客户端已经下载了它们,因为它们正在其他视图中使用,我不知道如何告诉部分视图脚本的位置,因为我使用的是捆绑包。

有没有办法在不将脚本直接粉碎到部分视图中的情况下解决此问题?

为所有

模态或 html 块指定唯一名称。让你的js代码像这样:

$(document).on('click', '#yourSpecifiedDomElement input','click',function(){
    alert("hello world!");
});

将所有 JavaScript 代码放入包含在捆绑包中的指定 JS 文件中。