在ASP.NET Core MVC中的iframe中显示部分视图

问题描述 投票:0回答:1

我已经尝试了一段时间以在ASP.NET Core MVC 2.2的IFrame中呈现剃刀页面。

我有我的主页和一些应该在IFrame中打开特定页面的菜单。

打开我的主屏幕的操作是这个。

[HttpGet]
public IActionResult IndexAdm()
{
    try
    {
        return View();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
}

这里是将部分视图加载到我的屏幕上的代码。

public PartialViewResult IframeAction(string sortBy)
{
    if (sortBy == null)
        return PartialView("../Company/ViewPartial");
    else
    {
        return PartialView(sortBy);
    }
}

我的页面第一次加载时,一切正常。加载主页,另一页加载到我的iframe中,如下图所示。

This is the image of the result I want to get

[我想得到的是上面发生的事情,但是当我单击菜单按钮时,主页消失了,浏览器中仅加载了我的部分页面,如下图所示。

It looks like this when I click on a menu item

我的菜单项代码很低。

<li>
    <a class="nav-link" href="#">
        <i class="fas fa-question"></i>
        @Html.ActionLink("FAQ", "IframeAction", "Company", new { sortBy = "../Company/ViewPartial" }, null)@*https://www.codeproject.com/Questions/1221703/How-do-I-update-an-iframe-using-ASP-NET-core*@
    </a>
</li>

下面是我的IFrame代码。

<iframe id="IframeAdm" name="IFrameAdm" width="100%" height="85%" border="none" src="/Company/IframeAction"></iframe>

如何在我的iframe中呈现部分页面而又不丢失主页?

c# asp.net-core iframe partial-views visual-studio-2019
1个回答
0
投票

@Html.ActionLink将创建一个<a>标记,该标记将用作重定向到上述页面的链接。根据您的用例,看起来您可能想利用aspnet核心的布局功能以及部分视图。您可以检查this link

如果您必须但是更新iframe,则需要使用javascript更新iframe的src。由于您使用的是.net core 2.2,因此已经导入了jquery。您可以使用以下jquery

function navigate(path) {
    $("#IframeAdm").attr('src', path);
}

现在,在菜单项中,您可以执行以下操作:

<li>
    <a class="nav-link" href="#" onclick="navigate(@Url.Content("your/path/here"))">
        <i class="fas fa-question"></i>
    </a>
</li>
© www.soinside.com 2019 - 2024. All rights reserved.