Как подключить cs html к _layout.razor - PullRequest
0 голосов
/ 08 мая 2020

О моей проблеме. Когда вы создаете приложение на стороне сервера Blazor. Вы можете выбрать индивидуальную учетную запись. Тогда Blazor создает все это для вас. Я внес некоторые изменения в дизайн файла "Login.cs html"

Теперь я хочу разместить его на своей стартовой странице. Я настроен с самого начала. У вас есть Mainlayout. Я хочу использовать свой собственный "LoginLayout".

Но проблема в том, что мой Login.cs html не подходит для LoginLayout.razor

Здесь вы можете увидеть, как выглядит файл лайк. Это сгенерировано Blazor.

@page
@model LoginModel


@{
    ViewData["Title"] = "Log in";
}

<div class="row">
    <div class="col-md-4">
        <section>
            <form id="account" method="post">
              <div asp-validation-summary="All" class="text-danger"></div>
                <div class="form-group">
                    <label asp-for="Input.Email"></label>
                    <input asp-for="Input.Email" class="form-control" />
                    <span asp-validation-for="Input.Email" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="Input.Password"></label>
                    <input asp-for="Input.Password" class="form-control" />
                    <span asp-validation-for="Input.Password" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <div class="checkbox">
                        <label asp-for="Input.RememberMe">
                            <input asp-for="Input.RememberMe" />
                            @Html.DisplayNameFor(m => m.Input.RememberMe)
                        </label>
                    </div>
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-lg btn-block">Log in</button>
                </div>
            </form>
        </section>
    </div>
</div>

@section Scripts {
    <partial name="_ValidationScriptsPartial" />
}

Мне нужна помощь, поэтому я могу использовать этот файл login.cs html в качестве начальной страницы.

1 Ответ

0 голосов
/ 08 мая 2020

Просто поместите следующий код вверху вашего _Host.cs html

@attribute [Microsoft.AspNetCore.Authorization.Authorize]

Примечание: вы не можете отобразить страницу входа в Blazor (MainLayout, et c.) Страница входа это страница Razor. Его нельзя интегрировать с Blazor. Атрибут выше инициирует перенаправление на страницу входа в систему, которая отображается в собственном макете. Это не Blazor. Это страницы Razor. Только после того, как пользователь вошел в систему, будет выполнено
перенаправление в приложение Blazor.

Надеюсь, это сработает ...

...