2009-04-22 6 views

답변

4

좋은 질문입니다.

입력 컨트롤 (예 : 입력, 선택)이 HTML 도우미로 래핑되어있어 사용자가 TempData를 통해 자신의 상태를 유지할 수 있도록하기 위해 많은 코드를 작성하지 않아도된다고 생각합니다. 나는 또한 링크와 폼 컨트롤이 컨트롤을위한 컨트롤러/액션을 지정하는 쉽고 균일 한 방법을 제공하도록 포장되어 있다고 생각한다. 대부분의 다른 컨트롤은 기본 상태 관리 또는 컨트롤러/동작 URL이 필요함을 보증하지 않습니다.

물론 원하는대로 제어 할 수있는 자신 만의 래퍼를 작성할 수 있습니다.

public static string Label(this HtmlHelper helper, string fieldName, string labelText) 
{ 
    var sb = new StringBuilder(); 
    sb.Append("<label for=\""); 
    sb.Append(fieldName); 
    sb.Append("\">"); 
    sb.Append(labelText); 
    sb.Append("</label>"); 
    return sb.ToString(); 
} 

을 그리고 여기 그 라벨 도우미 및 레이블 완전한 균일 텍스트 입력 필드 생성하는 텍스트 상자 래핑 사용하는 하나 :

을 여기에 HTML 라벨 제어를위한 하나 - 여기 내가 사용하는 몇 가지가 있습니다
public static string TextField(this HtmlHelper helper, string labelText, string fieldName, string value) 
{ 
    return string.Concat(
     "<div>", 
     helper.Label(fieldName, labelText), 
     helper.TextBox(fieldName, value), 
     "</div>"); 
} 
3

그 문제와 관련된 스레드 "Html.SubmitButton() missing in Preview4?"에 필 Haack의 답변을 발견 :

그래, 우리는 다소 미니멀 헬퍼를 유지하기 위해 노력하고 있습니다. 그뿐만 아니라 우리는 에서 많은 도움을 주신 분들이 많습니다. . "HTML을 알고 있습니다. 왜 SubmitButton 헬퍼가 필요합니까?".

입력 버튼 은 일반적으로 사용자 을 렌더링하는 데 사용되지 않으므로 도우미 메서드의 한계 값은 입니다. VS HTML 편집기를 사용하면 결국 유형의 인텔리 센스를 얻을 수 있습니다. 그것은 어떤 특성을 사용할 수 알려줍니다. 우리의 도우미는 그렇지 않습니다.

...

우리는 모든 HTML 요소에 대한 도우미 데 피하고 싶은 것은. 그 말이 이해가 안 : Html.Div.

도우미를위한 이론적 근거가 필요합니다. 어쩌면 우리는 을 모든 일반적인 양식 요소에 대해 가지고 있습니다. 사용자에게 을 표시하는 것만이 아닙니다. 그럴 경우 SubmitButton이 포함될 가능성이 있습니다.

지금, 우리의 이론적 근거는 사용자 입력, 또는 정보를 라우팅 렌더링하는 모든 도우미를 렌더링하는 모든 일반적인 형태 도우미가있는 도우미가 ...

관련 문제