如何在.NET Core 3中从控制器设置布局
如何在.NET Core 3中从控制器设置布局
目前,我正在将.NET MVC升级为.NET Core MVC。在MVC中,我们使用以下类似的方法,因此我需要保留该逻辑,并且在许多地方使用它。所以你能帮忙找到一种从.NET Core控制器设置布局页面的方法吗?
return View ("NameOfView", masterName: "viewName");
在.NET Core 3中,有一种情况是需要从控制器(Controller)中设置布局(Layout)。下面将介绍出现这个问题的原因以及解决方法。
问题的原因是因为在.NET Core 3中,无法直接从控制器(Controller)中设置布局(Layout),这导致了一些困扰。但是,我们可以通过在_ViewStart文件中使用ViewData来解决这个问题。
解决方法如下:
1. 首先,我们需要在控制器(Controller)中设置ViewData,如下所示:
public IActionResult Index() { ViewData["Layout"] = "_Layout"; return View(); }
在上述代码中,我们将"_Layout"布局(Layout)设置为ViewData中的"Layout"键的值。
2. 接下来,在_ViewStart文件中,我们可以获取并设置布局(Layout),如下所示:
@{ Layout = ViewData["Layout"] as string; }
在上述代码中,我们通过将ViewData中的"Layout"键的值转换为字符串,将其赋值给布局(Layout)。
通过以上步骤,我们可以从控制器(Controller)中设置布局(Layout),并在_ViewStart文件中使用ViewData来获取并应用该布局。
在.NET Core 3中,我们无法直接从控制器(Controller)中设置布局(Layout)。但是,我们可以通过在_ViewStart文件中使用ViewData来实现此功能。通过在控制器(Controller)中设置ViewData,并在_ViewStart文件中获取并设置布局(Layout),我们可以轻松地解决这个问题。