我正在使用 ServiceStack 来呈现我的 Markdown,但是我正在以编程方式进行我所追求的。基本上我的代码如下所示:
//MarkdownRenderer.cs
var rootPath = HttpContext.Current.Server.MapPath("~/");
var format = new MarkdownFormat { VirtualPathProvider = new PathProvider() };
var pageTitle = "Test for StackOverflow";
var pageContent = "Foobar";
var page = new MarkdownPage(format, rootPath, pageTitle, pageContent)
{
Template = "~/_Layout.cshtml"
};
format.AddPage(page);
var view = new Dictionary<string, object>
{
{"PageTitle", pageTitle},
{"ArrayData", new[]{"abc","def"}}
};
var html = format.RenderDynamicPageHtml(pageTitle, view);
我有一个这样的 Markdown 页面:
//_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<title><!--@PageTitle--></title>
</head>
<body>
<div>
@foreach var item in ArrayData {
- @item
}
</div>
<div><!--@Body--></div>
</body>
</html>
@Body 标记完全按预期填充,@PageTitle 标记也是如此。我现在希望能够使@foreach 代码正常工作,并且从可用的文档中我无法解决。问题是我的语法吗?我是否需要将代码转储到一个单独的文件中,然后单独编译,然后将其结果注入我的降价页面,就像我做 @SwapVariables 一样?
任何和所有帮助将不胜感激,如果您有任何问题,请提出。