【问题标题】:ASP.NET MVC 3 RenderPartial / Razor and the iframeASP.NET MVC 3 RenderPartial / Razor 和 iframe
【发布时间】:2011-04-15 10:23:29
【问题描述】:

我想在 <iframe src=''></iframe> 内渲染 PartialView 渲染的局部视图有它自己的 JavaScript 代码和 CSS 表。我尝试了两种方法来完成这项工作(都没有奏效):

1)
    <iframe src="http://localhost:54351/Box/19"></iframe>

    public PartialViewResult Box(int id)
    {
        return PartialView(GetBox(id));
    }

结果:纯文本(字符串),没有 CSS 表,JavaScript 代码不起作用

======================================

2)

    <iframe src="@{ Html.RenderPartial("~/Views/Box.cshtml", @Model); }"></iframe>

结果:显然它不起作用, iframe 内没有显示任何内容

在第一个解决方案中,我想知道是否有可能返回一个 RazorView 对象(或其他东西),该对象将具有有效的 JavaScript 代码和 CSS 表。有什么想法吗?

【问题讨论】:

    标签: asp.net asp.net-mvc-3 razor


    【解决方案1】:

    我相信您需要返回完整视图而不是部分视图。部分视图不会自动选择布局(因为它们旨在插入现有页面)。由于 IFrame 完全独立于父页面,因此它需要自己的样式表和脚本引用标签。

        public ActionResult Box(int id)
        {
            return View(GetBox(id));
        }
    

    【讨论】:

      【解决方案2】:

      我认为您对部分视图和 iframe 都有误解。

      iframe 在另一个网页中呈现整个网页,而不仅仅是部分网页。 iframe 必须有一个与当前页面不同的完整 URL(如果是同一个页面,它会尝试在其自身内一遍又一遍地呈现 iframe,从而创建一个无限循环)。

      您需要做的是指定返回完整视图的不同操作的 URL。如果渲染局部视图,则没有 &lt;head&gt; 标记,因此通常在 head 标记中没有关联的脚本标记。没有&lt;link&gt; 标签,没有标题等...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        • 2011-04-19
        • 1970-01-01
        • 2023-03-17
        • 2011-10-27
        • 1970-01-01
        相关资源
        最近更新 更多