In our application, we were using Html.RenderAction to add partial views to specific regions in the ViewPort of the main page. Since we just moved to Ext 7.2 (and consequently .Net Core). This allows us to modularly add (or leave out) partialViews to the ViewPort on the calling pages when needed. Here's a stripped down example of what we did before...

_Header
@using Ext.Net;
@using Ext.Net.MVC;
@using FIS.Presentation.EWAPPM.Models

@model HeaderModel

@(Html.X().Menu()
        .ID("mnuBar")
        .Layout(LayoutType.HBox)
        .BodyCls("menuOverride")
        .Floating(false)
        .ShowSeparator(false)
        .Region(Region.North)
        .Height(40)
        .Items(
            Html.X().Label()
                .Text("EWAPPM 2.0")
                .Width(250)
                .BaseCls("ewappmLogo")
                .MarginSpec("5 0 0 15"),

            //------------------------------------
            // Home
            //------------------------------------
            Html.X().MenuItem()
                .Text("Home")
                .Href(Url.Content("~/Home/GoToDashboard"))
                .BaseCls("menuItemStyleDefault")
                .ActiveCls("menuItemStyleHover")
                .Width(115),

            //------------------------------------
            // Profile
            //------------------------------------
            Html.X().MenuItem()
                .Text("My Stuff")
                .Href(Url.Content("~/User/GoToUserDashboard"))
                .BaseCls("menuItemStyleDefault")
                .ActiveCls("menuItemStyleHover")
                .Width(120 + (Model.MyStuffCount.Length * 5))
                .Plugins(
                    Html.X().Badge()
                        .Text(Model.MyStuffCount)
                        .AlignmentSpec("r-r")
                        .UI(UI.Danger.ToString())
                        .HideEmpty(true)
                        .RenderToBody(true)
                ),

            Html.X().ToolbarFill(),

            //------------------------------------
            // Sign Out
            //------------------------------------
            Html.X().MenuItem()
                .Cls("menuItemStyleDefault")
                .ActiveCls("menuItemStyleHover")
                .Text("Sign Out")
                .Icon(Icon.DoorOut)
                .Width(120)
                .Href(Url.Content("~/Security/SignOut"))
        )
)
Dashboard
@using Ext.Net;
@using Ext.Net.MVC;
@using FIS.Presentation.EWAPPM.Models

@{
    Layout = "~/Views/Shared/_StandardLayout.cshtml";
    ViewBag.Title = "Dashboard";
}

@model DashboardModel

<div class="grid-row">
    @{ Html.RenderAction("RenderTOCSideBar", "Home"); }
    @{ Html.RenderAction("RenderHeader", "Common"); }
    @{ Html.RenderAction("RenderCompatibilityWarning", "Common"); }

    @(Html.X().Viewport()
        .Layout(LayoutType.Border)
        .ID("vpEWAPPM")
        .Items(
            Html.X().Panel()
                .Layout(LayoutType.Border)
                .Region(Region.Center)
                .Items(
                    Html.X().Portal()
                        .ID("portalDashboard")
                        .Border(false)
                        .Region(Region.Center)
                        .Items(
                            Html.X().PortalColumn()
                                .Items(
                                    Html.X().Portlet()
                                        .Title("My Favorites")
                                        .HideCollapseTool(true)
                                        .Closable(false)
                                        .Height(250)
                                        .Frame(false)
                                        .Border(true)
                                        .Layout(LayoutType.Fit)
                                        .Icon(Icon.PageWhiteStack)
                                        .MarginSpec("0 0 10 0")
                                        .Tools(
                                            Html.X().Tool()
                                                .Type(ToolType.Help)
                                                .ToolTip("Help")
                                                .DirectEvents(de =>
                                                {
                                                    de.Click.Url = Url.Action("Dashboard_Legend");
                                                })
                                        )
                                        .Items(
                                            Html.X().GridPanel()
                                                .EnableColumnHide(false)
                                                .EnableColumnMove(false)
                                                .Store(
                                                    Html.X().Store()
                                                        .ID("storeMyItems")
                                                        .DataSource(Model.UserFavoriteDocuments)
                                                        .AutoLoad(true)
                                                        .Model(Html.X().Model()
                                                            .Fields(
                                                                Html.X().ModelField().Name("DocKey").Type(ModelFieldType.Int),
                                                                Html.X().ModelField().Name("DocumentNumber").Type(ModelFieldType.String),
                                                                Html.X().ModelField().Name("DocTitle").Type(ModelFieldType.String)
                                                            )
                                                    )
                                                )
                                                .ColumnModel(
                                                    Html.X().Column()
                                                        .Hidden(true)
                                                        .Hideable(false)
                                                        .DataIndex("DocKey"),
                                                    Html.X().Column()
                                                        .DataIndex("DocumentNumber")
                                                        .Text("Document #")
                                                        .Flex(1)
                                                        .Resizable(false)
                                                        .Hideable(false)
                                                        .Filter(Html.X().StringFilter()),
                                                    Html.X().Column()
                                                        .DataIndex("DocTitle")
                                                        .Text("Document Title")
                                                        .Flex(3)
                                                        .Resizable(false)
                                                        .Hideable(false)
                                                        .Filter(Html.X().StringFilter())
                                                )
                                                .Plugins(Html.X().GridFilters())
                                                .View(
                                                    Html.X().GridView().TrackOver(true)
                                                    .DirectEvents(de =>
                                                    {
                                                        de.ItemDblClick.Url = Url.Action("GoToViewDocumentDashboard");
                                                        de.ItemDblClick.ExtraParams.Add(new Parameter { Name = "docKey", Value = "record.data.DocKey", Mode = Ext.Net.ParameterMode.Raw });
                                                    })
                                                )
                                                .BottomBar(Html.X().StatusBar().Text("Double-click a row to view the item."))
                                        )
                                ),
                            Html.X().PortalColumn()
                                .Items(
                                    Html.X().Panel()
                                        .Title("What's New")
                                        .Icon(Icon.New)
                                        .BodyPadding(5)
                                        .Height(250)
                                        .Frame(false)
                                        .Border(true)
                                        .Layout(LayoutType.Fit)
                                        .Html(Model.PanelInfo.PanelHTML)
                                        .HideCollapseTool(true)
                                        .Closable(false)
                                        .AutoScroll(true)
                                        .MarginSpec("0 0 10 0")
                                        .Tools(
                                            Html.X().Tool().CustomType("edit").ToolTip("Edit").Hidden(!Model.AllowUpdateWhatsNew)
                                                .DirectEvents(de =>
                                                {
                                                    de.Click.Url = Url.Action("GoToEditPanel", "Admin");
                                                    de.Click.ExtraParams.Add(new Parameter { Name = "panelID", Value = "pnlWhatIsNew", Mode = Ext.Net.ParameterMode.Value });
                                                    de.Click.ExtraParams.Add(new Parameter { Name = "panelName", Value = "What's New", Mode = Ext.Net.ParameterMode.Value });
                                                })
                                        )
                                )
                        )
                )
        )
    )
</div>
CommonController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using Ext;
using Ext.Net;
using Ext.Net.MVC;
using FIS.Presentation.EWAPPM.Models;
using FIS.Presentation.EWAPPM.Helpers;
using FIS.Presentation.EWAPPM.Security;
using FIS.Infrastructure.EWAPPM.Domain;

namespace FIS.Presentation.EWAPPM.Controllers
{
    public class CommonController : Controller
    {
        #region Global Variables

        private HomeService _ewappmService = new HomeService(MvcApplication.Environment);
        private UserService _userService = new UserService(MvcApplication.Environment);
        private TrainingService _trainingService = new TrainingService(MvcApplication.Environment);

        #endregion Global Variables

        [AllowAnonymous]
        public ActionResult RenderCompatibilityWarning()
        {
            // This variable was originally used to handle the text in the label.
            // The message was moved to the label itself, but I left the plumbing in case we can leverage it for other purposes later.
            string labelMessage = "";

            return new Ext.Net.MVC.PartialViewResult
            {
                ViewName = "_CompatibilityWarning",
                RenderMode = RenderMode.AddTo,
                ContainerId = "vpEWAPPM",
                Model = labelMessage
            };
        }

        [EWAPPMAuthorize(ClaimType = "role", ClaimValues = "user,approver,admin")]
        public ActionResult RenderHeader()
        {
            HeaderModel model = new HeaderModel();

            return new Ext.Net.MVC.PartialViewResult
            {
                ViewName = "_Header",
                RenderMode = RenderMode.AddTo,
                ContainerId = "vpEWAPPM",
                Model = model
            };
        }
    }
}
We've used this technique to do Headers, Footers and various Sidebars appropriate to the site and specific content. We are hoping to find something that will allow us to be able to do the same thing in the new environment.

It looks like we would need to use ViewComponents, but aren't quite sure how to handle the concept of adding directly into a given container ("vpEWAPPM" in the case of my example) since we don't have PartialViewResult.

Hope all this makes sense... and this question helps others out in the future.

Thanks for any help you guys can provide!
Craig