.NET MVC Строго типизированный помощник - Получить значение из свойства? - PullRequest
2 голосов
/ 29 января 2011

Я создаю строго типизированный помощник (ссылка: ТАК вопрос ).Как указано в приведенном ниже коде, возможно ли каким-то образом получить значение из выраженного свойства и, таким образом, обойти необязательный параметр selectedValue?

    <Extension()> _
    Public Function DatePickerFor(Of TModel As Class, TProperty)(ByVal htmlHelper As HtmlHelper(Of TModel), ByVal expression As Expression(Of Func(Of TModel, TProperty)), Optional ByVal selectedValue As Nullable(Of Date) = Nothing) As MvcHtmlString
        Dim inputName = ExpressionHelper.GetExpressionText(expression)
        Dim inputValue = selectedValue 
        //Something like this possible? 
        //inputValue = ExpressionHelper.GetExpressionValue(expression)
        Return DatePicker(htmlHelper, inputName, inputValue)
    End Function

1 Ответ

9 голосов
/ 29 января 2011

Если вы хотите получить значение соответствующего свойства, на которое указывает выражение, вы можете использовать метод FromLambdaExpression :

Dim metadata = ModelMetadata.FromLambdaExpression(expression)
Dim value = metadata.Model
...