2017-01-09 66 views
1

使用Razor頁面作爲郵件模板我試圖使用@Html.Raw(Model.Content)顯示郵件(Html內容)的內容。使用Razor郵件模板中的@ Html.Raw呈現HTML內容

隨時運行代碼我得到這個錯誤:html does not exist in current context

我試過這在另一個剃鬚刀頁面來驗證RazorEngine已安裝,它顯示完美,沒有錯誤。

+1

的可能的複製[「名稱‘HTML’不會在目前情況下存在」異常(HTTP://計算器.com/questions/23354588/the-name-html-does-exist-in-the-current-context-exception) –

+0

@AaronHudon在你將它標記爲重複之前你有沒有讀過?我所做的是不同的。這可能是同樣的錯誤,但他們的解決方案不適合我。 – uikrosoft

回答

4

在做電子郵件時,我使用RazorEngine.Templating中的RazorEngineService,例如,於我而言,它看起來像這樣:

using RazorEngine.Templating; 

RazorEngineService.Create().RunCompile(html, ...) 

假設你使用的是相同的組件,@ Html.Raw不這種用法存在。我終於能夠在我的電子郵件這樣做是爲了獲得原始的HTML輸出:

@using RazorEngine.Text 

@(new RawString(Model.Variable)) 
+0

什麼時候使用'RazorEngineService.Create()。RunCompile(...)'? – uikrosoft

+0

@uikrosoft,對不起,我很困惑。如果你不使用RazorEngine.Templating,那麼你不會看到這個。您沒有發佈您正在使用的將.cshtml文件轉換爲電子郵件的代碼。這就是爲什麼我只是讓你看到我做什麼,並給出一種可能性。您可以嘗試在您的電子郵件CSHTML頁面中添加'@using RazorEngine.Text',然後將您的HTML封裝在@(new RawString(Model.Variable))'中並查看它是否有效。如果你有相同的程序集加載,那應該工作。 –

+0

它的工作!謝謝。 – uikrosoft