Я пытаюсь создать 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)
Кто-нибудь знает, как заставить это работать?