Html.Textbox와 Html.TextboxFor의 차이점은 무엇입니까?
답변
궁극적으로 그들은 모두 같은 HTML하지만 생산 () Html.TextBoxFor을 강하게 곳에 입력 된 Html.TextBox가 없습니다.
1: @Html.TextBox("Name")
2: Html.TextBoxFor(m => m.Name)
둘 다 생산할 것이다
<input id="Name" name="Name" type="text" />
그렇다면 사용 측면에서 무엇을 의미합니까?
일반적으로 두 가지 :
- 입력
TextBoxFor
하면 입력 이름이 생성됩니다. 일반적으로 속성 이름이지만 복잡한 유형의 속성에는 ‘customer_name’과 같은 밑줄이 포함될 수 있습니다. - 형식화 된
TextBoxFor
버전을 사용하면 컴파일 시간 검사를 사용할 수 있습니다. 따라서 모델을 변경하면 뷰에 오류가 있는지 확인할 수 있습니다.
일반적으로 MVC2 에 추가 된 강력한 형식의 HtmlHelpers 버전을 사용하는 것이 더 나은 방법으로 간주됩니다 .
답변
는 TextBoxFor
MVC2에 도입 된 새로운 MVC 입력 확장이다.
강력하게 형식화 된 최신 확장의 주요 이점은 런타임이 아닌 컴파일 타임에 오류 / 경고를 표시하는 것입니다.
이 페이지를 참조하십시오.
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
답변
IMO의 주요 차이점은 Textbox가 강력한 유형이 아니라는 것입니다. TextboxFor는 형식화 된 뷰에서 사용할 모델의 with 요소를 도우미에게 알려주는 람다를 매개 변수로 사용합니다.
두 가지 모두에 대해 동일한 작업을 수행 할 수 있지만 가능하면 형식화 된 뷰와 TextboxFor를 사용해야합니다.
답변
Html.TextBox amd Html.DropDownList는 강력한 형식이 아니므로 강력한 형식의 뷰가 필요하지 않습니다. 이것은 우리가 원하는 이름을 하드 코딩 할 수 있음을 의미합니다. 반면에 Html.TextBoxFor 및 Html.DropDownListFor는 강력한 형식이며 강력한 형식의 뷰가 필요하며 이름은 람다 식에서 유추됩니다.
강력한 형식의 HTML 도우미는 컴파일 시간 검사도 제공합니다.
실시간으로 우리는 대부분 강력한 형식의 뷰를 사용하므로 Html.TextBoxFor 및 Html.DropDownListFor를 해당 뷰보다 선호합니다.
Html.TextBox & Html.DropDownList 또는 Html.TextBoxFor & Html.DropDownListFor를 사용하든 최종 결과는 동일합니다. 즉, 동일한 HTML을 생성합니다.
강력한 형식의 HTML 도우미가 MVC2에 추가되었습니다.