Вы можете создать свои собственные методы расширения HtmlHelper
, которые используют выражения (так же, как они используются для ссылки на свойства модели).
@* An expression used to indicate which property of the model should be
examined. It may or may not actually be executed. *@
@Html.IdFor(o => o.FirstName)
@* Don't actually evaluate the expression, just parse it for the method name *@
@Url.ActionFor(o => o.ControllerMethod())
Вы можете посмотреть на источник MVC для примеров вспомогательных методов, которые принимают выражения в качестве входных значений, и вы можете увидеть мои answer here о том, как получить метаданные свойства объекта из выражения.
Однако ...
Используется в целях, я бы сказал, что такой подход связывает ваш взгляд слишком плотно к контроллеру. Мне не нравятся магические струны, но они обеспечивают полную развязку.
Неясно, хотите ли вы использовать такие методы внутри контроллера, и в этом случае разделение проблем становится менее проблематичным. Вы все равно потеряете определенные способности, такие как способность псевдонима имени действия.
Мне нравится --- и попробуем. Решение. Но! –