2011-10-17 2 views
6

Asp.Net MVC 3을 설치할 때 나타나는 기본 면도기 편집기 및 표시 템플릿 (예 : String.cshtml, DateTime.cshtml)은 어디에 있습니까?Asp.net MVC3에서 기본 편집기 및 표시 템플릿의 위치는 무엇입니까?

+0

편집기 및 표시 확장 프로그램을 찾으십니까 ?? (예 : @ Html.DisplayFor (x => x.Name)) –

+0

@MaxZerbini - 이러한 확장 기능을 사용할 계획입니다. 나는이 템플리트의 완전한 기본 세트로 주변을 둘러 보려고합니다. – Ahmad

+1

이들은 템플릿이 아닙니다. 이것들은 HtmlHelper 객체의 확장 메소드입니다. 당신은 그것들을 사용할 수 있거나 당신의 확장 방법을 개발할 수 있습니다. –

답변

1

가 기본값이 없습니다 templates.Razor EditorDisplay

DecimalTemplate

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

(I 찾을 수있는 디폴트 날짜 시간 템플릿을 없었다) StringTemplate 방법은 : 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; 
     } 
4

DotPeek 또는 Reflector가있는 경우 DefaultDisplayTemplates 유형을 조회하면 템플릿을 찾을 수 있습니다. 그러나 WebForm 또는 면도기 형식이 아닌 코드 형식이므로 경고하기가 조금 더 어렵다는 경고를받습니다.

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); 
} 
관련 문제