У меня есть веб-сайт построен с использованием ASP.NET MVC3, который слоистые следующим образом:Использование почтовой библиотеки из Business Layer
- ProjectName.Shared (модель + сервисные контракты)
- ProjectName.Infrastructure
- ProjectName.Data
- ProjectName.Data.Sql
- ProjectName.Managers (Бизнес-слой)
- ProjectName.Services (WCF услуги)
- ProjectName.UI.Main (ASP.NET MVC3 приложение)
Это на самом деле структура недавно я придумал после некоторого рефакторинга. К сожалению, не существует полного разделения между пользовательским интерфейсом и моим бизнес-слоем, поэтому в этой области можно использовать еще несколько рефакторингов, которые я не могу сделать прямо сейчас, потому что я нахожусь в сжатые сроки.
На данный момент мой клиент запросил несколько новых функций, связанных с отправкой писем пользователям после некоторых событий. То, как веб-сайт отправляет электронные письма, заключается в использовании библиотеки Postal, которая до сих пор отлично работает. Это происходит внутри веб-приложения MVC, который отличается от случая у меня есть для новых возможностей ...
Проблема:
У меня есть случай, когда мне нужно, чтобы позволить частный метод внутри моего бизнес-уровень для отправки электронной почты пользователям. Причина, по которой я не могу сделать это внутри метода Action, заключается в том, что существует много кодовых путей, которые в конечном итоге вызывают этот частный метод. Таким образом, это не очень специфично для одного метода Action.
Предлагаемое решение:
Что я имею в виду, чтобы создать EmailsController, который я могу назвать свой метод через HTTP-POST вызовы внутри моего бизнес-уровне. Затем я передал параметры, необходимые для отправки электронной почты через аргументы метода Action.
Но я нахожу это решение своего рода ошибочным и взломанным. Поэтому я бы очень хотел услышать некоторые мысли о том, как подойти к этой проблеме.
Это на самом деле то, что я имел, прежде чем прибегать к Postal, который зависит от ASP.NET MVC. Он позволяет создавать HTML-письма в виде представлений ASP.NET MVC, которые привязаны к объекту @Model, который отправляется из метода действия контроллера. – Kassem
Тот факт, что Postal напрямую зависит от представлений MVC и механизма бритвы для генерации электронной почты, является большой проблемой здесь. Я тоже столкнулся с этой проблемой и хотел бы узнать, есть ли лучший способ. – ryanulit
Я понимаю, что это год, но Postal будет использовать RazorEngine (http://antaris.github.io/RazorEngine/) так же счастливо, как встроенный механизм просмотра Razor, как указано здесь: http: // aboutcode. сеть/почтовый/вне-aspnet.html –