上周末在vb.net中的asp.net mvc项目上工作时,我遇到了一个奇怪的问题。我创建了一个扩展方法,将整数转换为与之关联的月份。我在控制台应用程序中测试了扩展方法,因此我知道它正在工作。

在我的asp.net mvc项目中,我有一个视图并想调用扩展方法,但是却收到一个错误,指出无法识别该扩展方法。我导入了它所包含的名称空间,但仍然无法摆脱错误。知道发生了什么吗?我没有代码,但是如果有帮助,我可以在今晚发布。谢谢!

扩展方式:

Imports System.Runtime.CompilerServices

Module SiteExtensions
    <Extension()> _
    Public Function ConvertToMonth(ByVal monthNumber As Integer) As String
        Dim month As String = String.Empty
        Select Case monthNumber
            Case 1
                month = "January"
            Case 2
                month = "February"
            Case 3
                month = "March"
            Case 4
                month = "April"
            Case 5
                month = "May"
            Case 6
                month = "June"
            Case 7
                month = "July"
            Case 8
                month = "August"
            Case 9
                month = "September"
            Case 10
                month = "October"
            Case 11
                month = "November"
            Case 12
                month = "December"
        End Select
        Return month
    End Function
End Module


视图:

<%  For Each m As Integer In DirectCast(ViewData("Months"), IEnumerable)%>
<a href="#"><%=m.ConvertToMonth()%><br /></a>
<%Next%>


错误是:“ ConvertToMonth不是Integer的成员”

乔恩

最佳答案

确保将模块声明为公共。

08-28 07:23