2010-01-15 122 views
14

是否可以在ASPX頁面內嵌這樣的內容?我可以在ASPX頁面內聯使用擴展方法嗎?

<%= Me.SomeExtensionMethod() %> 

我似乎無法弄清楚如何得到這個正常工作。我收到一個錯誤消息,說「SomeExtensionMethod」不是當前Page對象的成員。我在頁面頂部添加了必要的<%@ Import Namespace="..." %>指令。這在代碼隱藏工作。

這不是非常重要,但是知道未來如何做是一件好事。

謝謝!

回答

8

嘗試關閉.aspx頁面並按照this answer再次打開頁面。如果這可以改善某些事情(例如啓用智能感知),但不能解決問題,請發佈任何新錯誤。

您還可以將Public修飾符添加到您的Moduleclass定義中。如果您使用的是模塊,對我來說這是不需要的,但對this forum的一些討論表明它可能有所幫助。

+1

這工作!和你一樣,這對我來說確實沒有意義,但添加「公共」訪問修飾符的確有用。謝謝! – Pwninstein 2010-01-15 20:05:39

+0

爲我工作!我不得不將我的模塊更改爲公共範圍,並將導入添加到「Namespace.ModuleName」。 – EverPresent 2013-02-22 20:10:32

+0

謝謝 - 我使用了'import'語句,它工作。 – strider 2014-08-23 17:41:09

0

如果它工作在代碼隱藏的命名空間添加到函數調用:

<%=MyNamespace.ExtensionFcn("hello, world") %> 

我會做這個之前,我會修改web.config。

9

在命名空間中添加導入適用於我!

<%@ Import Namespace="Foo.FooFoo" %> 
+1

這裏是答案。它不可訪問,因爲包含擴展方法的類在ASPX生成的類中不會自動導入/使用。在代碼隱藏中添加Import/using子句並沒有幫助,因爲代碼隱藏只是ASPX類的基類。 – JMD 2016-03-14 20:42:56

相關問題