SharePoint 2010 在WebPart页面上调用扩展方法报方法未定义的解决方案

SharePoint 2010是基于.NET 3.5的,但是微软一直是神坑,页面前台居然不支持扩展方法,也就是你可以在后台代码里面使用扩展方法,但是不能在前台页面 上逍遥,否则会打回原型,比如在WebPart页面上加入如下代码:

<%@ Import Namespace="Common" %>

然后绑定表达式如下:

<%# Eval("Applying_Date").ShowDateStr("yyyy-MM-dd") %>

就会报如下错误:

image

查看编译详情就会发现,微软这坑货用的是2.0编译的,自然就无法使用扩展方法了。神坑啊,有木有,有图有真相:

image

为了让编译器用上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" />”。

保存刷新,问题立马解决。伤不起,程序员何必难为程序员。

posted @ 2013-04-15 22:42  雪雁  阅读(941)  评论(2编辑  收藏  举报