在现有 ASP.NET MVC 页面中嵌入另一个 html 页面

Embed another html page in an existing ASP.NET MVC page

我有超过十年的 C# 桌面应用程序开发经验,但我是 ASP.NET MVC 的新手,我的术语可能不正确,所以我会提前道歉。

我一直在开发 ASP.NET MVC 4 站点,该站点具有 jQuery 1.4 和 bootstrap 3 以及大量 CSS 自定义。我一直在尝试实现一个功能,我已经能够使用 bootstrap 4 单独实现它,但是当我复制代码并在局部视图中呈现它时,结果 不好.

我花了很多时间试图找出它显示如此糟糕的原因,我意识到在 bootstrap 3 和 4 不兼容以及所有 CSS 自定义之间网站有,用这种方法几乎行不通。

然后我想我可以将所有 style 更改内联,但这并不能使事情变得非常易于维护,而且 显然 不受欢迎。

话虽如此,我看到了很多关于 IFrame 用法的帖子,它看起来很吸引人,但我有顾虑。

  1. 我能否将主 cshtml 页面中的对象传递到 IFrame 中?
  2. 我可以在 IFrame 中使用不同的 jQuery/bootstrap/CSS 吗?
  3. 还有其他选择吗?
  1. 没有。由于这是一个安全问题,这是不可能的。
  2. 是的。 Iframe 独立呈现。
  3. 我想到了两个建议,没有一个解决方案是简单的,需要大量的重新编码:
  • 将您的部分视图降级为 bootstrap 3:一个您不想要的明显选项。
  • 使用自定义 class 名称重新编译 bs4:您的问题是 class 名称具有相同名称但在 bs3 和 bs4 中行为不同。所以,你可以将bs4源码中的class名字重命名,然后编译使用。例如:将 row class 重命名为 bs4-row。因为你不需要所有的 bs4 库来设置你的代码样式,你只需要重命名和编译你需要的文件,比如:_grid.scss.