我没找到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)
------解决思路----------------------
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
必须属性