2015-01-16 3 views
0

Я использую StringTemplate версия 3.StringTemplate C# elseif ошибка?

У меня есть следующий шаблон:

<html> 
    <head> 
    <title>Test</title> 
    <style> 
     .done-ok {   
      background-color : LawnGreen   
     } 
     .done-ignore {     
      background-color : Orange   
     } 
     .done-fail {     
      background-color : OrangeRed   
     }   
    </style> 
    </head> 
    <body class="$if(failedNonEmpty)$done-fail$elseif(needsAttentionNonEmpty)$done-ignore$else$done-ok$endif$"> 
    </body> 
</html> 

Я использую следующий код:

var stg = new StringTemplateGroup(templateName, new FileSystemTemplateLoader(Path.Combine(locationRoot, templateFolder))); 
    var st = stg.GetInstanceOf(templateName); 

    st.SetAttribute("passedNonEmpty", !true); 
    st.SetAttribute("failedNonEmpty", !true); 
    st.SetAttribute("needsAttentionNonEmpty", !true); 

    var content = st.ToString(); 

Когда я компилирую код Everthing в порядке. Странное дело, когда я изменить второй атрибут:

st.SetAttribute("failedNonEmpty", true); 

И вдруг я получаю исключение на линии st.ToString(), говоря: нет текста в шаблоне «ElseIf»

Любой с теми же проблемами или знает решение?

ответ

Смежные вопросы