查看: 2521|回复: 0

[.NET源码] “RazorEngine.Templating.TemplateCompilationException”类型的异常在 RazorEngi...

发表于 2017-1-11 19:15:00
知了云AD

错误信息:

“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。如下:

  1. static dynamic ToDynamic(object obj)
  2. {
  3. string json = JsonConvert.SerializeObject(obj);
  4. dynamic dyObj = JsonConvert.DeserializeObject(json);
  5. return dyObj;
  6. }
复制代码

这个方法需要引入Newtonsoft.Json.dll库(用最新的.net4.5的)

PS:在cshtml最开始最好放上:(注意大小写)

  1. @model dynamic
复制代码

这回 再在编译cshtml代码时,就不会再报上面的错误。



回复

使用道具 举报