2009-10-27 1 views
1

Я хочу иметь консольное приложение, которое я бы использовал для визуализации вывода в файл.ASP.NET MVC - метод действия контроллера из консольного приложения

псевдокод:

ComponentBaseController controller = new ComponentBaseController(); 
SaveToFile("output.html", controller.Result); 

Я не использую реальный код здесь, так как я пробовал разные подходы, но ничего не получает меня рядом.

Ближайший я получил с помощью Tip # 25 from Stephen Walther, это:

ComponentBaseController controller = new ComponentBaseController(); 

RouteData routeData = new RouteData(); 
routeData.Values.Add("controller", "ComponentBase"); 

var fakeContext = new FakeControllerContext(controller, routeData); 

var result = controller.Details("klasta7") as PartialViewResult; 
result.ExecuteResult(fakeContext); 
Console.Write(fakeContext.HttpContext.Response.ToString()); 

Это бросает System.InvalidOperationException, что частичный вид не может быть найден. Пробовал разные места для папки Views, но не повезло.

Любые идеи? Благодаря!

ответ

0

Я не пытаюсь рекомендовать что-то другое, кроме того, что вы просите, но я согласен с Wyatt, цель кажется немного на липкой стороне и в лучшем случае создаст запах кода , Если вам просто нужно сохранить отображаемый вывод в файл, я думаю, что было бы проще иметь службу приложения, которая вызывается, когда вам нужно сделать сохранение, скорее всего, с контроллера. В этом случае у вас будет доступ к текущему HttpContext, Маршрутам и т. Д.

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

+0

mannish, сможет ли эта служба сразу вызвать действие контроллера? Это также жизнеспособное решение для меня. Благодаря! –

+0

Даже если это не то, что я искал, я отмечу это как ответ. Я сделал это так, в конце концов, так как не хотел терять больше времени на эту задачу. –

0

Это будет сложно получить материал, чтобы сделать без хостинга приложения в чем-то, как нет HttpContext и т.д.

Теперь, используя WebRequest, чтобы захватить страницы из запущенной версии приложения и демпинг их на диск немного более выполнимо.

Наконец, это звучит немного FUBAR. Какова цель этой операции?

+0

Hi Wyatt, вот цель (хотя это и не имеет значения). У меня есть частичные представления, которые должны быть переданы в файл и переданы другому серверу через ftp. Так что мне нужен способ создания HTML, но поскольку у меня уже есть частичные представления, не нужно дублировать код. Я не вижу, как это FUBAR действительно. Если вы думаете о том, как MVC следует легко тестировать и все это, почему так сложно воспроизвести конечный результат метода контроллера - HTML? –

 Смежные вопросы

  • Нет связанных вопросов^_^