NetCore 模板引擎
NuGet 导入:RazorEngine.NetCore

HTML模板
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>@Model.Title</title>
</head>
<body>
<h1>@Model.Title</h1>
<p>作者:@Model.Author - 发布时间:@Model.CreateDate</p>
<p>@Raw(Model.Content)</p>
</body>
</html>
Model 层(ArticleModel.cs)
public class ArticleModel
{
/// <summary>
/// 文章ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 文章标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 文章内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 作者
/// </summary>
public string Author { get; set; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime CreateDate { get; set; }
}
View层(C# 程序)
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
private readonly IWebHostEnvironment _env;
public IndexModel(ILogger<IndexModel> logger, IWebHostEnvironment env)
{
_logger = logger;
_env = env;
}
public void OnGet()
{
//模板路径
string filePath = $"{_env.WebRootPath}\\templates\\default\\index.html";
// 读取模板
string template = System.IO.File.ReadAllText(filePath);
//添加模板
Engine.Razor.AddTemplate("index.cshtml", template);
//编译模板
Engine.Razor.Compile("index.cshtml", null);
//执行模板
ViewData["Run"] = Engine.Razor.Run("index.cshtml", null, new ArticleModel() { Title = "标题", Author = "作者", Content = "内容测试" });
}
}
View层(shtml 代码)
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
@Html.Raw(ViewData["Run"])
</div>
项目目录如下:WebRazor.zip


浙公网安备 33010602011771号