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

点击服务器端按钮弹出Bootstrap模态框报错“Model is not a function”求助

解决Bootstrap Modal提示“modal is not a function”的问题

这个报错本质是Bootstrap的modal方法没有正确绑定到jQuery对象上,我帮你梳理几个最可能的原因和对应的修复方案:

1. 重复定义了OpenPopUp函数

看你的代码里,前后出现了两份完全一样的OpenPopUp函数定义:

<script>
function OpenPopUp() {
debugger;
$('#myModal').modal('show');
}
</script>

虽然重复定义不会直接触发modal报错,但可能引发JS上下文的隐性问题,建议删掉其中一份,只保留一个函数定义即可。

2. ScriptManager.RegisterStartupScript的使用有误

你当前的服务器端代码写法存在参数搭配错误:

ScriptManager.RegisterStartupScript(this, Page.GetType(), "success", "<script> OpenPopUp(); </script>", false);

第四个参数addScriptTags设为false时,意味着你传入的脚本内容不需要系统自动包裹<script>标签,但你手动加了,这会导致最终输出的HTML里出现嵌套的<script>标签,引发语法错误,进而导致函数无法正常执行。

正确写法二选一即可:

  • 去掉手动的<script>标签,将第四个参数设为true(推荐,更规范):
    ScriptManager.RegisterStartupScript(this, Page.GetType(), "success", "OpenPopUp();", true);
    
  • 或者保留纯脚本内容,第四个参数设为false:
    ScriptManager.RegisterStartupScript(this, Page.GetType(), "success", "OpenPopUp();", false);
    

3. 页面重复加载了jQuery

这是这类报错最常见的根源:如果你的页面其他地方(比如母版页、嵌套的用户控件)又加载了一次jQuery,会覆盖之前绑定了Bootstrap方法的jQuery对象,导致$('#myModal').modal找不到对应的方法。

你可以打开浏览器F12查看页面源码,确保只加载一次jQuery,并且严格遵循加载顺序:

  1. 先加载jQuery
  2. 再加载Bootstrap JS

4. jQuery与Bootstrap版本不兼容

你当前使用的是jQuery 1.11.2,需要确认Bootstrap版本是否兼容:Bootstrap 3.x系列是兼容jQuery 1.x的,但如果是Bootstrap 4及以上版本,就需要jQuery 3.0+的支持。如果是版本不兼容问题,要么升级jQuery到3.x,要么降级Bootstrap到3.x版本。

5. 排查jQuery冲突问题

如果页面中引入了其他JS库(比如Prototype),可能会和jQuery产生冲突,导致$被占用。这种情况下,可以把代码里的$换成jQuery试试:

function OpenPopUp() {
    debugger;
    jQuery('#myModal').modal('show');
}

建议你按照上述顺序排查,先从第2、1点开始修复,这两个是你代码里明显的小问题,大概率能解决当前报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:05:48