Asp.net

如何在標記中使用擴展和實用方法?

  • September 28, 2012

好的。這可能是一個非常愚蠢的問題,但無論如何我都會問它……

如何在我的 ASP.Net 標記中使用擴展和實用方法?例如,(比如說)我有一個名為“ToExampleString()”的 DateTime 擴展方法(包含在我的 Common.Extensions 項目的 DateTimeExtensions 類中),我想在 ListView 的 ItemTemplate 的標記中使用它:

<ItemTemplate>
   <span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>

我收到以下錯誤:

“System.DateTime”不包含“ToExampleString”的定義,並且找不到接受“System.DateTime”類型的第一個參數的擴展方法“ToExampleString”(您是否缺少 using 指令或程序集引用?)

該頁面根本看不到擴展方法。

同樣,如何讓我的頁面標記知道實用程序類:

<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span>

我需要採取哪些步驟才能使這些東西發揮作用?我假設我忽略了一些愚蠢明顯的東西?

謝謝

<%@ Import Namespace="Common.Extensions" %>

我相信您可以對 web.config 中的所有標記執行此操作。

正如其他人所說,您需要在頁面頂部導入命名空間

<%@ Import Namespace="Common.Extensions"%>

或在您的 web.config 中全域

<system.web>
 <pages>
   <namespaces>
     <add namespace="Common.Extensions"/>
   </namespaces>
 </pages>
</system.web>

如果您只需要訪問公共模組(或靜態類)的方法,只需導入應用程序的根命名空間。

引用自:https://stackoverflow.com/questions/1589584