【问题标题】:ASP.NET MVC Call Extension Method in VB.NET Razor viewVB.NET Razor 视图中的 ASP.NET MVC 调用扩展方法
【发布时间】:2016-03-22 16:41:15
【问题描述】:

如何在 VB.NET Razor 视图中调用扩展方法。它在 c# 中工作,但无法在 VB.NET 中运行。

注意:.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

然后得到如下错误:

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

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

【问题讨论】:

    标签: asp.net-mvc vb.net razorengine


    【解决方案1】:

    我认为您在视图中的导入需要是

    @Imports ApplicationSupport.Models.HtmlHelperExtensions 
    

    因此它将导入您的扩展方法所在的模块。

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多