Каково расположение редактора и шаблонов отображения по умолчанию в Asp.net MVC3? - PullRequest
6 голосов
/ 17 октября 2011

Где находятся шаблоны Razor Editor и Display по умолчанию (например, String.cshtml, DateTime.cshtml), расположенные при установке Asp.Net MVC 3?

Ответы [ 2 ]

4 голосов
/ 31 октября 2011

Если у вас есть DotPeek или Reflector, вы можете найти тип DefaultDisplayTemplates, там вы найдете шаблоны.Но имейте в виду, что они в формате кода, а не в формате WebForm или бритвы, поэтому их немного сложнее интерпретировать.

StringTemplate

internal static string StringTemplate(HtmlHelper html)
{
  return html.Encode(html.ViewContext.ViewData.TemplateInfo.FormattedModelValue);
}

(по умолчанию не былоШаблон DateTime, который я смог найти)

DecimalTemplate

internal static string DecimalTemplate(HtmlHelper html)
{
  if (html.ViewContext.ViewData.TemplateInfo.FormattedModelValue == html.ViewContext.ViewData.ModelMetadata.Model)
    html.ViewContext.ViewData.TemplateInfo.FormattedModelValue = (object) string.Format((IFormatProvider) CultureInfo.CurrentCulture, "{0:0.00}", new object[1]
    {
      html.ViewContext.ViewData.ModelMetadata.Model
    });
  return DefaultDisplayTemplates.StringTemplate(html);
}
1 голос
/ 15 ноября 2011

Шаблоны по умолчанию отсутствуют. Методы Razor Editor и Display являются методами расширения класса HtmlHelper.Вы можете использовать их или разработать собственные методы расширения, как в этом примере.

public static MvcHtmlString MyTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
        {
            MvcHtmlString result = InputExtensions.TextBoxFor(helper, expression);
            // do modification to result
            return result;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...