Как создать URL из шаблона маршрута в ASP.NET Core - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть два отдельных сайта ASP.NET Core A1 и A2 на основе одной общей библиотеки B.

A1 и A2 находятся на a1.example.com и a2.example.com, и у них есть контроллеры с шаблонами маршрутов, выглядящими как

A1:

[HttpGet("/Feature1/{featureId}/EditEntry/{entryId}", Name = "EditFeature1Entry")]
public IActionResult EditFeature1Entry(long featureId, Guid entryId, string token)
{
    [...]
}

В проекте A1 я бы сгенерировал URL, используя

var url = Url.RouteUrl("EditFeature1Entry", new {featureId = 3, entryId = someGuid, token})

будет генерироваться:

url = "/Feature1/3/EditEntry/someGuid?token=token"

Но для создания того же URL-адреса из A2 мне нужно сгенерировать URL-адрес самостоятельно, поскольку маршрут не зарегистрирован в проекте A2 (контроллер находится в проекте A1).

Что я хотел бы сделать - это поместить шаблоны в библиотеку B и использовать генератор URL-адресов, чтобы иметь возможность сделать что-то вроде

var url = Url.RouteUrlFromTemplate("/Feature1/{featureId}/EditEntry/{entryId}", new {featureId = 3, entryId = someGuid, token}, "https", "a1.example.com", null);

для генерации

url = "https://a1.example.com/Feature1/3/EditEntry/someGuid?token=token"

Есть ли какой-нибудь готовый инструмент для этого или я должен сделать это сам? Я чувствую, что могу использовать большую часть того, что существует в текущем построителе Url, но я бы предпочел полагаться на фреймворк:)

1 Ответ

0 голосов
/ 07 апреля 2019

Но кажется, что ваши два сайта являются двумя поддоменами домена, и вы также можете видеть эти ссылки: https://www.crookm.com/journal/2018/routing-by-subdomain-in-asp-net-core-mvc/

Можно ли создать маршрут ASP.NET MVC на основе поддоменов?

https://forums.asp.net/t/2106373.aspx?Enable+Subdomain+routing+on+ASP+NET+MVC+area

И это проект маршрутизации поддоменов в github:

https://github.com/mariuszkerl/AspNetCoreSubdomain

...