Я программирую с использованием ASP.NET MVC 3 с движком просмотра Razor. Вот что я хотел бы быть в состоянии сделать:Как я могу использовать метод модели в пользовательском HtmlHelper
@Html.DisplayWithLabel(model => model.DisplayEventDate(), "When", "")
DisplayWithLabel
обычай HTML помощник, который показывает что-то с этикеткой.
Вот его подпись (или по крайней мере то, что я думаю, что это должно выглядеть):
public static MvcHtmlString DisplayWithLabel<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, Func<MvcHtmlString>>> expression, string label, string cssClass)
Почему я использую свою модель, как это? Ну, я бы хотел иметь методы расширения для моей модели, которые помогут мне форматировать свои данные, когда это необходимо (вместо форматирования данных внутри самой модели). Например, для форматирования даты событий у меня есть этот метод расширения:
public static MvcHtmlString DisplayEventDate(this MyEntity entity)
{
return new MvcHtmlString(string.Format("{0}@{1}", string.Format("{0:D}", entity.EventDate),
string.Format("{0:t}", entity.EventDate)));
}
Но когда я пытаюсь просмотреть мнение я получаю ошибку о том, что это не возможно неявное преобразование из MvcHtmlString
в Func<MvcHtmlString>
.
Я пытался понять это сам, но я не мог найти ключ так, пожалуйста, помогите мне :)
Ну ты прав:), но в этом конкретном случае я хотел бы использовать MvcHtmlString явно вместо TValue – Beatles1692
Я не уверен, что понимаю. Вы можете передать любой тип через TValue – isNaN1247