【发布时间】:2020-10-10 18:34:21
【问题描述】:
我有一个包含员工表格列表的页面,当用户单击其中一个列表时,它会触发一个函数来创建模式并根据单击的项目从控制器调用部分视图并发送参数, 我使用 @url.Action 将参数发送到 javascript 以生成模式并正确显示, 但是部分视图中的所有 javascript 都不起作用。 如何启用部分视图 cshtml 文件 (ViewPMEmployee) 中的所有脚本?
HTML
<tbody>
@foreach (var item in Employee)
{
<tr>
<td class="text-center cb-width">
<input type="checkbox" name="cb" value="@item.EmployeeCd" onclick="return EmployeeProperties('@item.EmployeeCd')" />
</td>
<td class="form-control-static td1">
@*<a href="/PMEmployee/ViewPMEmployee?employeeCd=@item.EmployeeCd">@item.EmployeeCd.ToString()</a>*@
<a href="#" data-toggle="modal" class="modal-link" data-targeturl="@Url.Action("ViewPMEmployee", "PMEmployee", new { employeeCd = item.EmployeeCd })" data-backdrop="false">@item.EmployeeCd.ToString()</a>
</td>
<td class="td2">
<font class="form-control-static">@item.EmployeeNm</font>
</td>
</tr>
}
</tbody>
Javascript
$(function () {
$('body').on('click', '.modal-link', function (e) {
e.preventDefault();
$("#myModal").remove();
$(".modal-backdrop").remove();
$.get($(this).data("targeturl"), function (data) {
$('<div id="myModal" class="modal right fade" role="dialog" style="left:350px">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header"><h4 class="modal-title">Modal Heading</h4><button type="button" class="close" data-dismiss="modal">×</button></div>' +
'<div class="modal-body">' +
data + '</div>' +
'<div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal"> Close</button ></div ></div></div ></div>').modal();
$(".modal-backdrop").addClass("d-none");
});
});
});
【问题讨论】:
-
看到局部视图是相关的。您的脚本是否在部分的@section 中?那是行不通的。
-
@SteveGreene 在 partialview 中没有“@section”,它只在“”标签中包含 html 和一些 javascript 函数。我没有发布部分视图,因为它太长了
-
替换 DOM 时会清除事件,因此请在更新 DOM 后设置事件。
标签: javascript asp.net-mvc razor bootstrap-modal