2014-09-22 1 views
0

Я создал консольное приложение в Visual Studio 2013, которое ежедневно отправляет отчеты по электронной почте. Я использую шаблон .cshtml, обработанный с помощью Razor. Можно ли использовать частичные представления для моего основного файла cshtml? Я попытался с помощью синтаксиса:Частичный вид в не веб-приложении

@Html.Partial("_partial") 

, но я получаю сообщение об ошибке («Имя„Html“не существует ...»). Я нашел информацию о частичном просмотре только с проектами MVC. Я хочу знать, как и если я могу использовать их в консольном приложении.

Я также попытался отобразить частичный вид в строке внутри основного шаблона cshtml, но мой шаблон будет читать html-разметку как литеральную строку. И я не могу использовать HTML-помощники вне MVC.

Заранее спасибо.

+0

Ваша цель - частичные методы? Возможно, есть еще одно решение для вашей цели. –

+0

Возможно, вам нужно отобразить частичный вид строки. В этом случае взгляните на эту тему: http://stackoverflow.com/questions/483091/render-a-view-as-a-string – simoneL

+0

@ UğurAldanmaz: Я хочу иметь возможность повторно использовать некоторые части представления. У меня уже слишком много кода в одном файле cshtml, поэтому я подумал, что было бы легче группировать части кода в отдельные частичные представления. – SebyD

ответ

1

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

Я реализовал метод Partial, который будет отображать частичный вид, а затем установить новую базу шаблонов.

public class ExtendedTemplateBase<TModel> : TemplateBase<TModel> 
    { 
     public string Partial<TPartialModel>(string path, TPartialModel model) 
     { 
      var template = File.ReadAllText(path); 
      var partialViewResult = Razor.Parse(template, model); 
      return partialViewResult;   
     } 
    } 
1

Вам нужно будет указать System.Web.Mvc.Html, а затем установить базу шаблонов.

Razor.SetTemplateBase(typeof(HtmlTemplateBase<>)); 

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

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