Настройка стартовой страницы в Blazor - PullRequest
0 голосов
/ 03 июля 2019

Страница запуска в моем приложении Blazor - Index.cshtml.Я бы хотел изменить стартовую страницу на домашнюю, а именно на мой Home.cshtml.
Я использую vs2019, ASPNET CORE Blazor (0.9.0-preview3-19154-020).

Сервер Blazor имеет маршрутизацию в Startup.cs, которая, как мне кажется, предназначена для сервисов, а не для страниц ... и остается созданной при создании нового проекта Blazor.

app.UseMvc(routes =>
{
   routes.MapRoute(name: "default", template: "{controller}/{action}/{id?}");
});

Запуск клиента имеет (как сгенерировано новым проектом Blazor):

public void ConfigureServices(IServiceCollection services)
{
}

 public void Configure(IComponentsApplicationBuilder app)
{
     app.AddComponent<App>("app");
}

Нужно ли каким-либо образом регистрировать маршрутизацию в клиентском файле startup.cs?

индекс.cshtml содержит только одну строку кода:

@page "/"

Как мне изменить мою «загрузочную» страницу с Index.cshtml на Home.cshtml?

Я смотрел во многих местах и ​​понимаю, что Blazor «экспериментальный».Такое ощущение, что я работаю над тем, чтобы тяжело изменить что-то такое простое.

Ответы [ 3 ]

0 голосов
/ 04 июля 2019

Скопируйте директиву @page, включая шаблон маршрута:

@page "/"

из файла Index.cshtml в файл Home.cshtml , а затемудалите файл Index.cshtml или предоставьте другой шаблон маршрута для его директивы @page, например

@page "/index"
0 голосов
/ 10 июля 2019

Вот что мы в итоге сделали (к лучшему или к худшему) ... В ходе многочисленных тестов мы обнаружили, что следующая строка кода в файле cshtml вызывает one ошибок:

@inject Microsoft.AspNetCore.Blazor.Services.WebAssemblyUriHelper UriHelper

После удаления этой строки мы исправили другую ошибку, изменив: Это =

// Create list of clients
List<Clients> clientList = new List<Clients>();

к этому =

// Create list of clients
List<CWBlah.Shared.Models.Clients> clientList = new `List<CWBlah.Shared.Models.Clients>();`

Итак, похоже, это проблема с областью видимости, хотя я не могу ясно понять, почему. Когда я добавляю директиву @using в начало страницы, кажется, что код не «слушает» эту директиву. Я ожидаю, что @using CWBlah.Shared.Models позволит мне просто использовать Clients вместо определения области видимости всей переменной. в итоге мы не делали перенаправления, но в итоге поместили всю нашу логику «Dashboard» в «Index.cshtml».

0 голосов
/ 03 июля 2019

Вы должны создать клиентскую часть Blazor (размещенную) с последним предварительным просмотром Blazor.

В методе Configure of Server проекта есть код:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute();
                endpoints.MapFallbackToClientSideBlazor<Client.Startup>("index.html");
            });

Change "index.html "to" home.html "

Обратите внимание, что расширение .cshtml больше не используется.Вместо этого используйте .razor.

Надеюсь, это поможет ...

...