public string RenderSection(string name, bool isRequired)
{
Action sectionRender;
if (!Sections.TryGetValue(name, out sectionRender))
{
if (isRequired)
{
throw new ArgumentException(string.Format("Undefine section name '{0}'", name));
}
return null;
}
State.Push(_buffer); // save
_buffer = new StringBuilder(DefaultCapacity);
sectionRender();
string sectionContent = _buffer.ToString();
_buffer = State.Pop(); // restore
return sectionContent;
}