我在Visual Studio 2013中构建了一个控制台应用程序,它每天发送电子邮件报告。我使用的是用Razor解析的.cshtml模板。 是否可以为我的主cshtml文件使用部分视图? 我尝试使用语法:
@Html.Partial("_partial")
但是我收到错误(“名称'Html'不存在......”)。 我只找到了有关MVC项目的部分视图的信息。我想知道如何以及如何在控制台应用程序中使用它们。
我还尝试将局部视图渲染到cshtml主模板中的字符串,但我的模板将html标记读作文字字符串。而且我似乎无法在MVC之外使用HTML帮助程序。
提前谢谢。
答案 0 :(得分:1)
您需要引用 System.Web.Mvc.Html ,然后设置模板库。
Razor.SetTemplateBase(typeof(HtmlTemplateBase<>));
答案 1 :(得分:1)
我解决了这个问题,我会在这里发布答案,以防其他人受益。
我实现了部分方法,该方法将呈现局部视图,然后设置新模板库。
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;
}
}