2015-12-16 26 views
0

如何在VB.NET Razor视图中调用扩展方法。它在C#中工作,但无法在VB.NET中运行它。VB.NET中的ASP.NET MVC呼叫扩展方法Razor视图

注:目标框架在.NET 4.0中

这里是代码:

@Imports ApplicationSupport.Models 
    @Html.RenderXml("XML String here", Server.MapPath("~/XSLT/Contents.xslt")) 

然后扩展方法如下:

Imports System.Collections.Generic 
Imports System.IO 
Imports System.Linq 
Imports System.Web 
Imports System.Web.Mvc 
Imports System.Xml 
Imports System.Xml.Xsl 
Imports System.Runtime.CompilerServices 

Namespace ApplicationSupport.Models 

Public Module HtmlHelperExtensions 
     <Extension()> _ 
     Public Function RenderXml(helper As HtmlHelper, xml As String, xsltPath As String) As HtmlString 
      Dim args As New XsltArgumentList() 
      Dim t As New XslCompiledTransform() 
      t.Load(xsltPath) 
      Dim settings As New XmlReaderSettings() 
      settings.DtdProcessing = DtdProcessing.Parse 
      settings.ValidationType = ValidationType.DTD 
      Using reader As XmlReader = XmlReader.Create(New StringReader(xml), settings) 
       Dim writer As New StringWriter() 
       t.Transform(reader, args, writer) 
       Dim htmlString As New HtmlString(writer.ToString()) 
       Return htmlString 
      End Using 
     End Function 
    End Module 
End Namespace 

然后得到错误如下: Error

我无法找到任何有用的帮助。我希望有人能指引我正确的方向。

我是c#程序员,但这段代码需要在VB.NET中。

回答

1

我觉得你在视图中导入需

@Imports ApplicationSupport.Models.HtmlHelperExtensions 

所以将导入您的扩展方法驻留在模块。