Как я могу сгенерировать URL по внешнему виду или контролеру RouteName?
Вам не нужно это делать.URL должны генерироваться только в передних слоях, где у вас есть доступ к HTTP-контексту, и передаваться в резервные слои в качестве аргументов.
Конечно, вы всегда можете выполнить какой-то ужасный гротескный хак в своем бэкэнд-слое и жестко кодировать статический HttpContext.Current
, чтобы создать экземпляр UrlHelper
и, таким образом, сделать ваши резервные слои прочно связанными со стеком HTTP, сделав егоНевозможно повторно использовать в изоляции и тестировании модулей.
Да, и, кстати, оформите MvcMailer , если вам нужно отправлять электронные письма в вашем приложении.Таким образом, вы можете определить тело письма как шаблон, где у вас будет доступ к помощникам и тому подобному, и вам не нужно будет выполнять вышеупомянутый гротескный хак.