SharePoint 2010是基于.NET 3.5的,但是微软一直是神坑,页面前台居然不支持扩展方法,也就是你可以在后台代码里面使用扩展方法,但是不能在前台页面 上逍遥,否则会打回原型,比如在WebPart页面上加入如下代码:
<%@ Import Namespace="Common" %>
然后绑定表达式如下:
<%# Eval("Applying_Date").ShowDateStr("yyyy-MM-dd") %>
就会报如下错误:
查看编译详情就会发现,微软这坑货用的是2.0编译的,自然就无法使用扩展方法了。神坑啊,有木有,有图有真相:
为了让编译器用上3.5,我们可以在Web.config配置编译器信息:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
注意这个:“<providerOption name="CompilerVersion" value="v3.5" />”。
保存刷新,问题立马解决。伤不起,程序员何必难为程序员。