2011-09-08 4 views
2

우리 프로젝트에서 우리는 여러 곳에서 TextBoxFor를 사용하고 있습니다. TextBoxFor의 높이와 너비를 우리가 사용한 곳마다 설정하고 싶습니다.EditorTemplate 또는 DisplayTemplate에서 TextBoxFor

<%= Html.TextBoxFor(x => x, new { @class = "TextBoxFor" }) %> 


.TextBoxFor 
{ 
    height:30px; 
    width:250px; 
    font-family:@Batang; 
    font-size:20px; 
    font-weight: bold; 
} 

는 것이 가능 EditorTemplate/DisplayTemplate 어딘가에 <%= Html.TextBoxFor("", new { @class = "TextBoxFor" }) %>을 넣어하고 다른 장소에서 우리는 단지 우리가 CSS 클래스 이름을 지정하지 뜻이

<%= Html.TextBoxFor(x => x) %> 

처럼 전화입니다. 따라서 유지 관리가 쉽습니다. 아이디어가 없습니다. 감사합니다

업데이트, 나는 정적 도우미를 생성하지만 오류를 데 ..

public static MvcHtmlString CustomTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes) 
{ 
    return htmlHelper.CustomTextBoxFor<TModel, TProperty>(expression, new { @class = "TextBoxFor" }); 

} 



<%: Html.CustomTextBoxFor(m => m.Name) %> 

어떤 아이디어가?

+1

무한 루프를 생성하는 자신을 반환 할 수 없습니다. 'htmlHelper.TextBoxFor'로 변경하십시오. –

답변

1

네,하지만 자신 만의 HTML 도우미를 만든 다음 Html.MyTextBoxFor (...)를 수행 할 수도 있습니다.

Check here for examples

당신은 MVC3Futures 파일을 다운로드 할 수 있습니다, 그것은 당신이 당신의 폴더에 넣을 수있는 기본 템플릿의 템플릿 사용 버전을 포함합니다. TextBoxFor를 사용자 정의하기 위해 이들을 편집 할 수 있습니다. 그러나 TextBoxFor() 대신보기에서 @Html.EditorFor(...)을 사용해야합니다. 템플릿이 설치된 범위에서 EditorFor의 모든 용도에 영향을 미칩니다.

그런데 MVC3을 사용하는 경우 WinForms 엔진 대신 Razor 엔진을 사용하는 것이 좋습니다. 그것은 타이핑이 적고 더 효율적이며, WinForms에서 얻지 못할 기능을 가지고 있습니다. WinForms의 생각을 낙담시킵니다.

+0

확인, 질문을 업데이트했습니다. – Vinay

-1

모든 텍스트 입력 필드에 스타일을 적용하려면 MVC 템플릿과 함께 제공되는 CSS 스타일을 수정할 수 있습니다.

input[type="text"] 
{ 
    border: 1px solid #ccc; 
    padding: 2px; 
    font-size: 1.2em; 
    color: #444; 
} 
관련 문제