Поддерживает ли Blazor или какой-либо пакет NuGet маршрутизацию для вложенных маршрутов?

Представьте, что у меня есть приложение для онлайн-продаж и обработки заказов. У меня есть клиенты, счет-фактура, элемент счета-фактуры. У покупателя есть вопрос о товаре в его последнем заказе, и он хочет отправить ссылку своему торговому представителю.

Как Blazor справляется с этой ситуацией, когда URL ДОЛЖЕН быть чем-то вроде ...

https://myapp.com/customer/12345/Invoice/234/InvoiceItem/4

Возможно ли это с помощью механизма маршрутизации Blazor?

Я прочитал несколько сообщений в блогах, и маршрутизация ПОЯВЛЯЕТСЯ остановиться на: /page/{parameter}, тогда как мне бы очень хотелось /page/{parameter}/control/{parameter}/control/{parameter}/etc...


person Kevon    schedule 03.07.2020    source источник


Ответы (1)


Это абсолютно возможно с тем, что встроено в Blazor, по крайней мере, с .NET Core 3.1 и .NET5. Просто важно использовать разные имена параметров, так как они соответствуют свойствам [Parameter] компонентов бритвы.

Для вашего примера это будет:

@page "/customer/{Customer}/invoice/{Invoice}/invoiceitem/{InvoiceItem}"

<span>Customer: @Customer</span>
<span>Invoice: @Invoice</span>
<span>Item: @InvoiceItem</span>

@code {
    [Parameter] public string Customer {get; set;}
    [Parameter] public string Invoice {get; set;}
    [Parameter] public string InvoiceItem {get; set;}
}
person Michel Jansson    schedule 16.11.2020