You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core局部视图中Bootstrap Modal触发Illegal invocation错误求助

问题分析与解决方法

核心问题:Bootstrap Modal结构不完整

你遇到的Illegal invocation错误,本质是局部视图里的Modal缺少Bootstrap要求的标准DOM结构,导致Bootstrap JS无法正确识别和初始化弹窗组件。

具体修复步骤

1. 修正局部视图JobPreview.cshtml的Modal结构

Bootstrap Modal必须包含.modal-dialog和.modal-content两层核心嵌套结构,否则JS无法正常工作。修改后的代码如下:

@model BusinessLogicCommon.RequestModel._JobPreview
<div id="j@Model.Id" class="job-preview modal modal-right fade" tabindex="-1" role="dialog" aria-hidden="true">
    <!-- 必须添加的.modal-dialog容器 -->
    <div class="modal-dialog">
        <!-- 必须添加的.modal-content容器 -->
        <div class="modal-content">
            <!-- 可选的头部(带关闭按钮) -->
            <div class="modal-header">
                <h5 class="modal-title">@Model.JobTitle</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <!-- 内容主体 -->
            <div class="modal-body">
                <div class="d-flex align-items-start">
                    <div class="container-icon dark-icon mt-3">
                        <i data-feather="briefcase"></i>
                    </div>
                    <div style="margin-left: 30px;">
                        <p class="text-fade">
                            @(Model.RecruitmentType != null ? Model.RecruitmentType : "Type unspecified"),
                            @(Model.Experience != null ? Model.Experience + " experience" : "Experience unspecified")
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

2. 简化主视图里的Modal选择器语法

把原代码里的转义符写法@(&quot;#j&quot;+job.Id)改成更简洁的Razor字符串拼接,避免潜在的转义错误:

<a href="#" class="prev-job" data-id="@job.Id" data-bs-toggle="modal" data-bs-target="#j@job.Id">
    <h2 class="mt-0">@job.Name</h2>
</a>

3. 检查Bootstrap依赖是否完整

确保页面正确引入了Bootstrap 5的JS和依赖的Popper.js(Bootstrap 5弹窗必须依赖Popper):

<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.min.js"></script>

如果使用的是打包后的vendors.min.js,要确认其中包含了兼容版本的Popper和Bootstrap JS。

内容的提问来源于stack exchange,提问作者za_ali33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:20:21