2015-12-16 135 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 

所以將導入您的擴展方法駐留在模塊。