У меня есть свое собственное расширение помощника HTML, которое я использую этот путь
<%=Html.LocalizableLabelFor(model => model.Reason_ID, Register.PurchaseReason) %>
который объявленный как это.
public static MvcHtmlString LocalizableLabelFor<T>(this HtmlHelper<T> helper, Expression<Func<T, object>> expr, string captionValue) where T : class {
return helper.LocalizableLabelFor(ExpressionHelper.GetExpressionText(expr), captionValue);
}
но когда я открываю его в отладчике expr. Тело. ToString () покажет мне, Преобразовывают (модель. Reason_ID). Но должен смоделировать. Reason_ID. Это - большая проблема, потому что ExpressionHelper. GetExpressionText (expr) возвращает пустую строку. Какое странное волшебство - это? Как я могу избавиться от него?
Проблема заключается в ваших общих типах Func. Замените Func
на Func
и все будет в порядке:
public static MvcHtmlString LocalizableLabelFor<T,S>(this HtmlHelper<T> helper, Expression<Func<T, S>> expr, string captionValue) where T : class
{
// ... code ...
}