Я работаю над веб-сайтом ASP.NET MVC2. Для учебы. Я работаю с языком Visual Basic.Пользовательский ASP.NET MVC2 HtmlHelper: как получить экземпляр переданного объекта?
В свете я хотел бы сделать это:
<%: Html.EditorForEnumeracion(Function(v) v.combustible%>
Итак, я создал метод расширения HtmlHelper:
Imports System.Runtime.CompilerServices
Imports System.Linq.Expressions
Imports System.Reflection
Public Module HtmlHelpers
<Extension()> _
Public Function EditorForEnumeracion(Of TModel, TValue)(ByVal html As HtmlHelper(Of TModel), ByVal expression As Expression(Of Func(Of TModel, TValue))) As MvcHtmlString
'My stuff goes here
End Function
End Module
Проблема заключается в том, что я не знаю, как получить экземпляр объекта vbulbustability, который я передаю помощнику. Меня не интересует объект v. Мне нужно работать с горючим атрибутом объекта v.
Here и here похоже, как это сделать, но я не понимаю. Кроме того, я работаю с Visual Basic, а не с C#.
Я думаю, что я могу получить экземпляр объекта Enumeracion через параметр выражения, но я не понимаю, как это сделать.
Подробнее.
Это мой "Vehiculo" класс:
Namespace Models.Automovil
Public Class Vehiculo
Public Property tipo As New Models.Enumeracion("TipoDeVehiculo")
Public Property marca As String
Public Property modelo As String
Public Property numeroDePuertas As Integer
Public Property combustible As New Models.Enumeracion("TipoDeCombustible")
Public Property potencia As Integer
Public Property fechaPrimeraMatriculacion As DateTime
Public Property version As String
Public Property precio As Decimal
Public Property descripcion As String
End Class
End Namespace
А это мой "Enumeracion" Класс:
Namespace Models
Public Class Enumeracion
Private bd As New tarificadorasegasaEntities
Private diccionario As New Dictionary(Of String, Integer)
Private _nombre As String
Private _clave As String
Private _valor As Integer
Public ReadOnly Property nombre As String
Get
Return _nombre
End Get
End Property
Public ReadOnly Property clave As String
Get
Return _clave
End Get
End Property
Public ReadOnly Property valor As Integer
Get
Return _valor
End Get
End Property
'More stuff here. Methods.
End Class
End Namespace
Модель класса Vehiculo.
По-прежнему не разрешается это.
Заранее спасибо.
res.Model ничего, поэтому e тоже ничего. – Daniel
@ Daniel, если res.Model ничего, это означает, что ваш взгляд не сильно типизирован или вы не передали ему какую-либо модель из действия вашего контроллера. –
Вы были правы. Большое спасибо. – Daniel