Маршрутизация с ограничениями параметров маршрутов в 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()
{
}
}
}