scaoping 发表于 2015-9-25 09:56:19

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

  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" />”。
  保存刷新,问题立马解决。伤不起,程序员何必难为程序员。
页: [1]
查看完整版本: SharePoint 2010 在WebPart页面上调用扩展方法报方法未定义的解决方案