Asp.net mvc 使用ASP.NET MVC在视图中进行VB.NET扩展的方法

Asp.net mvc 使用ASP.NET MVC在视图中进行VB.NET扩展的方法,asp.net-mvc,vb.net,.net-3.5,extension-methods,Asp.net Mvc,Vb.net,.net 3.5,Extension Methods,周末我在vb.net中进行asp.net mvc项目时遇到了一个奇怪的问题。我创建了一个扩展方法,将整数转换为与之关联的月份。我在控制台应用程序中测试了扩展方法,所以我知道它正在工作 在我的asp.net mvc项目中,我有一个视图,希望调用扩展方法,但我得到一个错误,即扩展方法无法识别。我导入了它所包含的名称空间,但仍然无法消除错误。知道发生了什么吗?我没有带代码,但如果有帮助的话,我可以在今晚发布。谢谢 扩展方法: Imports System.Runtime.CompilerService

周末我在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
导入System.Runtime.CompilerServices
模块站点扩展
_
作为字符串的公共函数ConvertToMonth(ByVal monthNumber作为整数)
Dim month As String=String.Empty
选择Case monthNumber
案例1
月份=“一月”
案例2
月份=“二月”
案例3
月份=“三月”
案例4
月份=“四月”
案例5
月份=“五月”
案例6
月份=“六月”
案例7
月份=“七月”
案例8
月份=“八月”
案例9
月份=“九月”
案例10
月份=“十月”
案例11
月份=“11月”
案例12
月份=“12月”
结束选择
回归月
端函数
端模块
视图:


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


Jon

代码可能会有所帮助,但听起来您仍然没有正确导入扩展方法。您可能希望尝试为它提供与应用程序相同的名称空间。或者将扩展的名称空间更改为
System.Web.Mvc
,因为我们知道名称空间是有效的,然后从那里退出。

确保将模块声明为公共的。

更改代码如下:

Public Module SiteExtensions

End Module

谢谢你的回复!我还没能测试它,因为昨晚我一开机,我的主板就坏了。它应该在今天或明天修复,我会尝试一下你的建议,谢谢!我在这个问题上浪费了很多时间。事实上,我自己更正了它,然后读了这篇文章+1.
Public Module SiteExtensions

End Module