У меня есть два отдельных сайта 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, но я бы предпочел полагаться на фреймворк:)