Если вам нужен доступ к значению члена-брата, это означает, что вы предполагаете, что модель представления имеет этого члена-брата.Это означает, что ваш HTML помощник больше не должен быть универсальным.Вы можете сделать это:
public static MvcHtmlString UiAutoCompleteForWithId<TProperty>(
this HtmlHelper<MyViewModel> helper,
Expression<Func<MyViewModel, TProperty>> expression,
object htmlAttributes
)
{
MyViewModel model = helper.ViewData.Model;
var value = model.SomeOtherSiblingProperty;
// TODO: do something with this property
...
}
Или, если ваши модели представлений реализуют какой-то общий базовый интерфейс, содержащий рассматриваемый элемент-брат, вы можете указать общее ограничение:
public static MvcHtmlString UiAutoCompleteForWithId<TModel, TProperty>(
this HtmlHelper<TModel> helper,
Expression<Func<TModel, TProperty>> expression,
object htmlAttributes
) where TModel: ISomeInterface
{
ISomeInterface model = helper.ViewData.Model;
var value = model.SomeOtherSiblingProperty;
// TODO: do something with this property
...
}