我正在使用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>
阅读完这个问题后:
我意识到我必须在局部视图中包含脚本。总结一下:
<script>
标记现在,在这个示例中这样很好,但在现实世界中,我有几个脚本可以处理局部视图,而且它们相当大。此外,客户端已经下载了它们,因为它们正在其他视图中使用,我不知道如何告诉部分视图脚本所在的位置,因为我使用的是Bundles。
有没有办法解决这个问题而不将脚本直接粉碎到局部视图中?
答案 0 :(得分:1)
为您的所有模态或html块指定唯一名称。 制作你的js代码:
$(document).on('click', '#yourSpecifiedDomElement input','click',function(){
alert("hello world!");
});
将所有javascript代码放入包含在捆绑包中的指定js文件中。