錯誤信息:
“RazorEngine.Templating.TemplateCompilationException”類型的異常在 RazorEngine.NET4.0.dll 中發生,但未在用戶代碼中進行處理
其他信息: Unable to compile template. “object”不包含“username”的定義,並且找不到可接受類型為“object”的第一個參數的擴展方法“username”(是否缺少 using 指令或程序集引用?)
Other compilation errors may have occurred. Check the Errors property for more information.
解決方法:
需要將傳給cshtml的model給序列化一下,在傳遞過去,不然就會報錯。
1.有可能是傳遞過去的model是匿名類,但有時聲明了一個類也會報這個錯誤。(可嘗試聲明一個類傳遞過去)
2.第一個方法不行就只能用下面的方法,把這個model序列化一下再傳遞給cshtml,這個方法返回一個動態類型的model。如下:
static dynamic ToDynamic(object obj) { string json = JsonConvert.SerializeObject(obj); dynamic dyObj = JsonConvert.DeserializeObject(json); return dyObj; }
這個方法需要引入Newtonsoft.Json.dll庫(用最新的.net4.5的)
PS:在cshtml最開始最好放上:(注意大小寫)
@model dynamic
這回 再在編譯cshtml代碼時,就不會再報上面的錯誤。