咨询:.cshtml文件中<module>标签及ProductGridView的定位问题
排查
ProductGridView这类未找到定义模块的思路 兄弟,我懂这种搜遍整个解决方案都找不到模块定义的抓狂感!你在.cshtml里碰到的ProductGridView,还有其他类似结构的“神秘模块”,大概率是下面这些情况之一,你可以挨个排查:
- 动态加载的前端模块:如果项目用了
require.js、Webpack这类模块加载工具,ProductGridView可能是异步加载的JS模块,要么被打包进了bundle.js这类合并文件里,要么是通过远程资源动态引入的。你可以检查页面渲染后的源码,看有没有相关的模块加载逻辑,或者去项目的打包配置文件里找模块映射规则。 - 第三方Bootstrap扩展库的内置组件:既然页面用了Bootstrap,很可能是引入了AdminLTE、Metronic这类基于Bootstrap封装的后台模板库,这类库会自带很多预制组件模块,
ProductGridView说不定就是其中之一。你可以检查项目里的package.json、bower.json,或者页面里引入的脚本链接,找找这类第三方库的痕迹。 - VS搜索被忽略的文件/范围:VS2015的默认搜索可能会排除
node_modules、dist这类文件夹,或者只限定了特定文件类型。你可以调整搜索选项:点击搜索框旁的“选项”按钮,勾选“包含所有文件”,并指定搜索范围覆盖.js、.ts、.html这类前端文件,说不定就能找到定义了。 - 服务器端模板动态注入:虽然你说没采用.NET环境,但
.cshtml通常是ASP.NET视图后缀,会不会是后端通过模板引擎把模块名动态渲染到页面里的?比如后端把模块名存在变量中,再注入到视图里。你可以对比原.cshtml文件和页面渲染后的HTML源码,看看ProductGridView是不是动态生成的;如果是其他后端框架,也可以去后端代码里找相关变量逻辑。 - 全局作用域的自定义组件:可能
ProductGridView是在某个全局JS文件里定义的,但这个文件被你漏掉了——比如放在项目根目录外的共享资源里,或者被标记为“排除在项目外”。你可以手动遍历项目里的所有JS文件,或者在浏览器控制台输入ProductGridView,看看能不能直接访问到这个对象,再通过控制台的溯源功能找到它的定义文件。
内容的提问来源于stack exchange,提问作者MJR
相关产品推荐
相关产品推荐

