Маршрутизация с ограничениями параметров маршрутов в asp.net core 2.2. razor pages C#

Необходимо реализовать функционал страницы, чтобы в зависимости от URL запроса отображались нужные данные, а именно: в запросе меняется последняя секция "/a": http://localhost:52747/Products/a (a,b,c,d...и так далее) Для заранее определенных запросов (прописанных на странице) я нашел решение с использованием директивы @page "{name:regex(^(a|b|c|d)$)}" и регулярного выражения.

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

Схема с переменной не работает: @page "{name:regex(^(" + s + ")$)}" @page "{name:alpha}" тоже не вариант. Пытался найти решение с маршрутизацией в Startup.cs, но ничего не вышло.

Было бы идеальным решение, которое можно реализовать в PageModel (.cshtml.cs - файл) самой страницы.

Если у кого-то был опыт затрагивающий данную проблему, прошу поделиться решением. Спасибо.

Содержание файла Index.cshtml

@page "{name:regex(^(a|b|c|d)$)}"

@model Routing.IndexModel
@{
    ViewData["Title"] = "IndexProducts";
}

<h1>IndexProducts</h1>

<h2>Name = @Model.Name</h2>

Содержание файла Index.cshtml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace Routing
{
    
    public class IndexModel : PageModel
    {

        [BindProperty(SupportsGet = true)]
        public string Name { get; set; }

        public void OnGet()
        {
        }

    }
}


Ответы (0 шт):