检查模型上的所有属性是否都使用C#Fluid

时间:2018-06-18 08:57:32

标签: c# .net liquid

我正在使用https://github.com/sebastienros/fluid

目前我正在解析和渲染模板,效果很好:

public string Parse(SomeModel model, string template)
{
  if (!FluidTemplate.TryParse(template, out var fluidTemplate))
  {
    return null;
  }

  var context = new TemplateContext();
  context.SetValue("Model", model);
  context.MemberAccessStrategy.Register<SomeModel>();

  return fluidTemplate.Render(context);
}

我的问题是,即使某个属性在&#34; SomeModel&#34;上丢失,也会对其进行解析和渲染。类。例如:

&#34; SomeModel&#34; class只有&#34; FirstName&#34;属性:

public class SomeModel
{
  public string FirstName { get; set; }
}

我渲染了这个:

var model = new SomeModel { FirstName = "John" };
var template = "Hi {{ Model.FirstName }} {{ Model.LastName}}";
var result = Parse(model, template)

这将解析并呈现没有问题,但将{{Model.LastName}}设置为空字符串,因此输出将为:

"Hi John"

如何检查模板是否已渲染但属性是否缺失?

0 个答案:

没有答案