山大王1985 2015-01-21 06:44 采纳率: 0%
浏览 1706

求助一个vb.net无法向NVelocity模板引擎传递参数的问题

我没找到vb.net的资料就用C#的翻译成了下面vb.net代码,我是想把一个类的实例作为参数传给模板,但模板并未收到son的数据,请各位前辈帮忙看看,字符串类型和数值类型都以传递,唯独类的实例不可以传递,代码如下:
person类代码:

 Public Class person
    Public name As String
    Public age As Integer
End Class

html模板代码:

 <html>
<head>
    <title>无标题页</title>
</head>
<body>
$p.name
</body>
</html>

服器端ashx代码:

     context.Response.ContentType = "text/html"
        Dim son As New person
        son.name = "yxk"
        son.age = 123

        '创建模板类
        Dim vltengine As VelocityEngine
        vltengine = New VelocityEngine()
        vltengine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file")
        vltengine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/模板")) '模板文件所在的文件夹
        vltengine.Init()

        '设置参数
        Dim vltcontext As VelocityContext
        vltcontext = New VelocityContext() 
        vltcontext.Put("p", son) '设置参数,在模板中可以通过$data来引用

        Dim vlttemplate As Template
        vlttemplate = vltengine.GetTemplate("htmlmb2.htm")
        Dim vltwriter As System.IO.StringWriter
        vltwriter = New System.IO.StringWriter()
        vlttemplate.Merge(vltcontext, vltwriter)

        Dim html As String
        html = vltwriter.GetStringBuilder().ToString()
        context.Response.Write(html) 
  • 写回答

2条回答 默认 最新

  • 娃都会打酱油了 2015-01-22 02:10
    关注

    好吧,我又看到你了,貌似必须属性才能被认出来,你将Person声明为下面的这种写法就能认出来了

     Public Class Person
        Dim _name As String
        Public Property Name() As String
            Get
                Return _name
            End Get
            Set(ByVal value As String)
                _name = value
            End Set
        End Property
    
    
        Public age As Integer
    End Class
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器