Я кодирование приложения в MVC 5
интернете, и я хочу, чтобы отобразить Id
в виде div
при использовании метода DisplayFor
в view
.Использование HtmlHelper в MVC 5
Вот код, который у меня есть:
public static MvcHtmlString DisplayWithIdFor<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression, string wrapperTag = "div")
{
var id = helper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(ExpressionHelper.GetExpressionText(expression));
return MvcHtmlString.Create(string.Format("<{0} id=\"{1}\">{2}</{0}>", wrapperTag, id, helper.DisplayFor(expression)));
}
Это ошибка, что я получаю:
«System.Web.Mvc.HtmlHelper» не содержит определения для «DisplayFor» и никакой метод расширения «DisplayFor», принимающий первый аргумент типа «System.Web.Mvc.HtmlHelper», можно найти (вам не хватает директивы использования или ссылки на сборку?)
Я не уверен, что положил метод DisplayWithIdFor
в нужное место. Я желаю использовать метод DisplayWithIdFor
в Edit
view
controller
по имени AssetController
и поместили метод DisplayWithIdFor
в AssetController
.
Могу ли я, пожалуйста, помочь с этим кодом?
Заранее спасибо.
Я сделал, как вы предложили, однако DisplayWithIdFor не может быть найден при использовании @Html. синтаксис. – user3736648
Вы указали ссылку на нее в своем представлении? '@using YourAssembly.Html;'? Или, если вы хотите использовать его и в других представлениях, добавьте его в 'web.config'. –
Обратите внимание, что это можно немного упростить, удалив строку 'var id = ...' и заменив 'html.MergeAttribute (« id », id)' на 'html.GenerateId (ExpressionHelper.GetExpressionText (выражение));' –