Blazor выполняет код для определенного шаблона маршрутаC#

Место общения программистов C#
Ответить
Anonymous
 Blazor выполняет код для определенного шаблона маршрута

Сообщение Anonymous »

0
У меня есть набор страниц, которые все следуют аналогичному шаблону /{report}/{id}, но где {report} заменяется конкретным именем для каждой страницы. . У нас также есть одноэлементный reportManager, который раньше обновлялся в OnParameterSet страницы

Код: Выделить всё

protected override async Task OnParametersSetAsync()
{
if (reportManager.SelectedId != id) {
reportManager.SelectedId = id;
}

var item = reportManager.SelectedItem;
}
Вместо того, чтобы не забывать размещать это на каждой новой странице, есть ли способ запустить это для всех страниц отчета.
Я пробовал создание компонента для переноса страниц, но поскольку это компонент на странице, его OnParameterSet запускается после страницы, поэтому при загрузке страницы reportManager.SelectedItem установлен неправильно.
Я также подумал о том, чтобы просто создать страницу для всех страниц:

Код: Выделить всё

@page "/{reportName}/{id}"

@switch reportName {
case "report1":

break;
case "report2":

break;
...
}

@ {
[Parameter]
public int Id { get; set; }
[Parameter]
public string ReportName { get; set; }

protected override async Task OnParametersSetAsync()
{
if (reportManager.SelectedId != id) {
reportManager.SelectedId = id;
}

var item = reportManager.SelectedItem;
}
}
Но для этого просто нужно, чтобы каждый раз кто-то не забывал добавить сюда страницу. Есть ли способ просто запустить этот код для набора путей?


Подробнее здесь: https://stackoverflow.com/questions/791 ... te-pattern
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»