【问题标题】:Embed another html page in an existing ASP.NET MVC page在现有的 ASP.NET MVC 页面中嵌入另一个 html 页面
【发布时间】:2021-01-10 00:27:46
【问题描述】:

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

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

我花了很多时间试图弄清楚为什么它的显示效果如此糟糕,并且我意识到在引导程序 3 和 4 的不兼容以及网站具有的所有 CSS 自定义之间,使用这种方法几乎是不可行的.

然后我认为我可以将我的所有 style 更改内联,但这并不能使事情变得非常可维护,并且显然不赞成。

话虽如此,我已经看过很多关于 IFrame 使用的帖子,它看起来很吸引人,但我有一些顾虑。

  1. 我能否将对象从cshtml 主页面传递到 IFrame?
  2. 我能否在 IFrame 中使用不同的 jQuery/bootstrap/CSS?
  3. 还有其他选择吗?

【问题讨论】:

  • 1.不 2. 你可以在该文档中使用任何你喜欢的东西。
  • 1.您的意思是向 iframe 提交表单还是?这是可行的
  • @LasseEdsvik,我之前没想过提交表单。我正在使用Html.BeginForm,它在技术上返回一个MvcForm。如果这是可行的,我想我可以在其中完成所有对象的创建,然后将其传递到 iframe 中。然后我可以以某种方式在 iframe 的代码中使用它,然后执行我的 ajax 调用以写入数据库。这样做可行吗?

标签: c# html asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:
  1. 没有。由于这是一个安全问题,这是不可能的。
  2. 是的。 Iframe 是独立呈现的。
  3. 我想到了两个建议,没有一个简单的解决方案,需要大量重新编码:
  • 将您的局部视图降级为 bootstrap 3:您不需要的明显选项。
  • 使用自定义类名重新编译 bs4:您的问题在于具有相同名称但在 bs3 和 bs4 中行为不同的类名。因此,您可以在 bs4 的源代码中重命名这些类名,然后编译并使用它们。例如:将row 类重命名为bs4-row。由于您不需要所有 bs4 库来设置代码样式,因此您只需重命名和编译您需要的文件,例如:_grid.scss。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 2013-11-30
    • 2019-04-04
    • 1970-01-01
    • 2014-06-30
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多