누구도 System.Web.Mvc.HtmlHelper (숨김, 확인란, 비밀번호, 텍스트 상자)을 사용하여 일부 HTML 양식 컨트롤을 렌더링 할 수 있고 HTML (파일, 제출)으로 명시 적으로 작성해서는 안되는 이유를 알고 있습니까? 이 분리의 원리는 무엇입니까?왜 모든 양식 컨트롤이 HtmlHelper를 통해 렌더링 될 수 있습니까?
답변
좋은 질문입니다.
입력 컨트롤 (예 : 입력, 선택)이 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>");
}
그 문제와 관련된 스레드 "Html.SubmitButton() missing in Preview4?"에 필 Haack의 답변을 발견 :
그래, 우리는 다소 미니멀 헬퍼를 유지하기 위해 노력하고 있습니다. 그뿐만 아니라 우리는 에서 많은 도움을 주신 분들이 많습니다. . "HTML을 알고 있습니다. 왜 SubmitButton 헬퍼가 필요합니까?".
입력 버튼 은 일반적으로 사용자 을 렌더링하는 데 사용되지 않으므로 도우미 메서드의 한계 값은 입니다. VS HTML 편집기를 사용하면 결국 유형의 인텔리 센스를 얻을 수 있습니다. 그것은 어떤 특성을 사용할 수 알려줍니다. 우리의 도우미는 그렇지 않습니다.
...우리는 모든 HTML 요소에 대한 도우미 데 피하고 싶은 것은. 그 말이 이해가 안 : Html.Div.
도우미를위한 이론적 근거가 필요합니다. 어쩌면 우리는 을 모든 일반적인 양식 요소에 대해 가지고 있습니다. 사용자에게 을 표시하는 것만이 아닙니다. 그럴 경우 SubmitButton이 포함될 가능성이 있습니다.
지금, 우리의 이론적 근거는 사용자 입력, 또는 정보를 라우팅 렌더링하는 모든 도우미를 렌더링하는 모든 일반적인 형태 도우미가있는 도우미가 ...
- 1. 왜 쿠키가 비활성화 될 수 있습니까?
- 2. ASP.NET에서 렌더링 된 컨트롤이 필요합니까?
- 3. HtmlHelper를 통한 동적 RadEditor 생성
- 4. 왜 내 웹 컨트롤이 null입니까?
- 5. 왜 연산자 -> 수동으로 과부하 될 수 있습니까?
- 6. 렌더링 할 수 있습니까? 밑줄이없는보기를 부분적으로 렌더링 할 수 있습니까?
- 7. Like-HtmlHelper를 구현하는 방법
- 8. MVC에서 HtmlHelper를 사용하면 어떤 이점이 있습니까?
- 9. 왜 이런 종류의 플래시 디스플레이가 변형 될 수 있습니까?
- 10. 왜 내 ASP.NET webforms 컨트롤이 렌더링되지 않습니까?
- 11. 컨트롤이 Expression Blend에서 선택 될 때 결정
- 12. 양식 제출을 통해 배열 값을 전달할 수 있습니까?
- 13. wpf - 타이트한 라운드 사용자 컨트롤이 될 윈도우
- 14. vetoIfFailing 크루즈 크루즈 컨트롤이 왜 작동합니까?
- 15. 컨트롤이 표시 될 때 감지 할 수 있도록 KVO를 MPMoviePlayerController에 추가 할 수 있습니까
- 16. asp.net webforms 페이지 컨트롤을 통해 열거 할 수 있습니까?
- 17. HtmlHelper를 사용하거나 자체 컨트롤을 사용해야하나요?
- 18. MFC : 왜 스핀 컨트롤이 뒤로 작동합니까
- 19. Silverlight 컨트롤이 표시되었음을 어떻게 알 수 있습니까?
- 20. 왜 sql 쿼리를 통해 그룹을 훨씬 빠르게 만들 수 있습니까?
- 21. 아약스를 통해 partialpostback에서 javascript 렌더링
- 22. 창이 데스크탑에 "고정"될 수 있습니까?
- 23. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 24. 모든 양식 인증 로그 아웃 이벤트에 연결할 수 있습니까?
- 25. GoogleChart에서 모든 데이터 집합 양식 SQL을 어떻게 사용할 수 있습니까?
- 26. ctl00_PagePlaceHolder_myId가 동일하게 유지 될 수 있습니까?
- 27. 왜 PostgreSQL의 새로운 사용자가 모든 데이터베이스에 연결할 수 있습니까?
- 28. 왜 WPF의 모든 것이 흐릿합니까?
- 29. VisualBrush를 사용하여 wpf Viewport3D 내 렌더링 된 컨트롤이 특정 이벤트를 실행할 수 있습니까?
- 30. C# WinForms에는 슬라이더 컨트롤이 있습니까?