Несколько лямбда-выражений в качестве параметров помощника MVC HTML? - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь создать Html Helper, который принимает два свойства модели.В моем примере ниже у моей модели есть два поля Height и HeightUnit.Код в помощнике будет отображать текстовое поле Bootstrap с выпадающим списком единиц в группе ввода.Первое свойство модели привязано к текстовому полю, а второе - к выпадающему списку.Код не дает ошибок при компиляции, но когда он получает отображаемое имя 2-го выражения, происходит сбой со следующей ошибкой:

"Шаблоны могут использоваться только с доступом к полю, доступом к свойству, индексом одномерного массива,или выражения индивидуального индивидуального индексатора. "

Вот объявление Html Helper:

public static MvcHtmlString MaterialTextBoxFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> textBoxExpression, Expression<Func<TModel, TValue>> dropDownListExpression, object htmlAttributes = null)
{
    string Id = htmlHelper.IdFor(textBoxExpression).ToString();
    string DisplayName = htmlHelper.DisplayNameFor(textBoxExpression).ToString();

    // this is coming out as blank
    string DDId = htmlHelper.IdFor(dropDownListExpression).ToString();
    // this is causing the error message displayed
    string DDDisplayName = htmlHelper.DisplayNameFor(dropDownListExpression).ToString();
}

Вот код бритвы, который я пытаюсь использовать для вызова помощника:

@Html.MaterialTextBoxFor(m => m.Height, m => m.HeightUnit)

Кто-нибудь знает, как заставить это работать?

...