Отрисовать строку ASP.NET MVC для просмотра без HttpContext или ControllerContext? - PullRequest
4 голосов
/ 07 марта 2011

Мне нужно отобразить представление ASP.NET MVC в строку, чтобы можно было отправить его по электронной почте (это электронное письмо с подтверждением заказа, определенное в файле .ascx).

Я успешно смог отобразить ASP.NET MVC View в строку, используя один из методов этого вопроса.

Однако теперь мне нужно иметь возможность сделать это через службу WCF (доступ к которой осуществляется через silverlight), и поэтому у меня нет ControllerContext. Эта служба WCF содержится в том же проекте, что и мой проект MVC, поэтому имеет доступ ко всем моим моделям и т. Д.

Я рассмотрел несколько вопросов в Stackoverflow об этой проблеме, но все они, похоже, нуждаются в контексте контроллера. Я думал, что что-то есть в mvccontrib, но, похоже, его там больше нет.

Самое близкое, что я нашел, - это принятый ответ на вышеупомянутый вопрос, но, к сожалению, он разрывается с RenderPartial в представлении, которое вы отображаете.

Я надеюсь, что, возможно, некоторые закулисные работы для ASP.NET MVC 2, связанные с RenderAction, могут помочь сделать это возможным сейчас?

Ответы [ 3 ]

2 голосов
/ 08 марта 2011

BuildStarted, и я собрал автономный шаблонизатор Razor, который вам может пригодиться (http://razorengine.codeplex.com). Вам нужно будет адаптировать содержимое .ascx в простой шаблон строки, но он должен выполнять свою работу.

Если у вас есть NuGet, вы можете запустить Install-Package RazorEngine

1 голос
/ 07 марта 2011

Вы можете оформить следующую запись в блоге . Также стоит посмотреть Почтовый .

0 голосов
/ 07 марта 2011

Вам нужно создать фальшивку HttpContextBase с фальшивкой HttpRequestBase, которая возвращает значимые значения из своих свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...