【问题标题】:Blazor multiple _Host.cshtmlBlazor 多个 _Host.cshtml
【发布时间】:2020-12-22 20:16:18
【问题描述】:

我希望有两个左右的 Host.cshtml。这个想法是,我有一个登录页面,它具有非常不同的所需 css 和 js,以及一个具有不同所需 css 和 js 的主/仪表板页面,我不想在单个 _Host 中加载所有这些 css 和 js。 cshtml,一个用于登录页面及其员工,另一个用于主仪表板区域。我已经知道多个布局的概念,但这并不能解决问题。请帮忙。

当然我可以使用布局,我的挑战是使用用户文件夹中的 _Host.cshtml 来选择 UserLoginView.razor 和 DasboardView.razor 等组件,以便在页面文件夹中使用 _Host.cshtml。

【问题讨论】:

  • 欢迎来到 StackOverlflow。请更新您的问题以显示您已经尝试过的内容,并在minimal, complete, and verifiable example 中显示您面临的具体问题。更多信息,请看how to ask一个好问题,并采取该站点的tour
  • @Sukhi,谢谢,我已经编辑了问题。

标签: blazor


【解决方案1】:

由于_Host.cshtml 是一个剃须刀页面,您可以在页面中编写逻辑来加载不同的 CSS 文件,或者您可以加载不同的部分或组件。

例子

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>My page</title>
    <base href="~/" />
    @if (Request.Path.Value == "/login")
    {
        <link href="css/login.css" rel="stylesheet" />
    }
    else
    {
        <link href="css/site.css" rel="stylesheet" />
    }
</head>

但是,如果您确实需要使用多个 _Host 文件,则可以按照this 讨论中的说明进行操作。不过,这需要 _Host 文件是完全不同的应用程序。

但您可以添加如下内容:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
    endpoints.MapBlazorHub();
    endpoints.MapFallbackToPage("/_Host");
    endpoints.MapFallbackToPage("~/user/{*clientroutes:nonfile}", "/_HostUsers");
});

【讨论】:

  • @ZarkX,感谢您的回复,我已经尝试过您的第二个建议,但我收到错误模糊的 Admin/_Host 和 _Host。我什至尝试将文件重命名为其他名称,仍然是同样的错误。我已经编辑了问题以反映这一点。
  • 您是否更改了_Host文件中的@page "/"
  • 这对我有用,但在第二个 host.cshtml 中的脚本出现问题。有人可以与 css 和脚本文件共享主机文件的示例
【解决方案2】:

请参考这个问题和答案:

ASP.Net Core Blazor: How to load different _Host.cshtml files based on header value

您可以使用 Html.RenderPartial("_Host2.cshtml",null,ViewData);在 _Host.cshtml 中

【讨论】:

    【解决方案3】:

    在回复@ZarkX 时,我完成了他的第二个建议的代码,我改为

    @page "/user" 
    

    在 _HostUsers.cshtml 中并更改了 head 中的基本标记:

    <base href="/user">
    

    我改变了样式,js路径到

    <link href="../css/bootstrap/bootstrap.min.css" rel="stylesheet"> 
    

    在 _HostUsers.cshtml 中为我工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多