2016-07-04 99 views
0

如何驗證Razor模板,該模板用於呈現郵件模板。驗證剃刀模板

string template = @" 
My template 
@if (Model.Condition { <span>is true</spaM> }" 

我犯了兩個錯誤:缺少右括號和錯誤的結束標記。 我需要驗證它,並知道我應該修復哪些(最好是知道哪一行)。我想使用原生Razor方法。

+0

爲什麼要將它存儲爲字符串?存儲爲模板並[預編譯](http://stackoverflow.com/q/5500078/11683)。 – GSerg

回答

0

您的意思是?

@{ 
    string template = Model.Condition ? "My template <span>is true</span>" : ""; 
} 
2

如果我理解正確,您希望得到通知,說明您在模板中編寫的代碼是無效的HTML。

如果是這樣,恐怕沒有簡單的方法。該模板純粹是生成您指定要發送到響應的文本。

它甚至可能不是HTML--可能是JavaScript或許多其他輸出 - 它只是一串文本。

您可能有一個生成表格開始的模板,另一個生成正文的模板,以及另一個生成頁腳和結束表格標記的模板。其中的每一個都會自行生成無效的HTML,但一個接一個地輸出會生成一個有效的HTML表。 (那裏有很多產品 - 抱歉)。

什麼會使它無效是HTML的解析器 - 即瀏覽器。只有當模板輸出處於可以解析的完整文檔中時,才能驗證模板輸出。

+0

剃刀模板必須在剃刀/ C#方面有效。 OP顯示的缺少的左括號是Razor語法的一部分,而不是模板。 – GSerg

+0

@gserg,你是對的。這就是爲什麼我問到究竟需要什麼 - 在DisplayTemplate中輸入上面的內容無論如何都會顯示語法錯誤。缺少的括號和不正確的結束範圍標記會在輸入時標記,但仍然會編譯...仍然不確定爲什麼需要通知通知和行號。 –

0
string MyString = string.empty; 
@if(Model.Condition) 
{ 
MyString ="<span>"+ "is true"+"</span>"; 
}