Html.Textbox VS Html.TextboxFor


답변:


117

궁극적으로 그들은 모두 같은 HTML하지만 생산 () Html.TextBoxFor을 강하게 곳에 입력 된 Html.TextBox가 없습니다.

1:  @Html.TextBox("Name")
2:  Html.TextBoxFor(m => m.Name)

둘 다 생산할 것이다

<input id="Name" name="Name" type="text" />

그렇다면 사용 측면에서 무엇을 의미합니까?

일반적으로 두 가지 :

  1. 입력 TextBoxFor하면 입력 이름이 생성됩니다. 일반적으로 속성 이름이지만 복잡한 유형의 속성에는 'customer_name'과 같은 밑줄이 포함될 수 있습니다.
  2. 형식화 된 TextBoxFor버전을 사용하면 컴파일 시간 검사를 사용할 수 있습니다. 따라서 모델을 변경하면 뷰에 오류가 있는지 확인할 수 있습니다.

일반적으로 MVC2추가 된 강력한 형식의 HtmlHelpers 버전을 사용하는 것이 더 나은 방법으로 간주됩니다 .



7

IMO의 주요 차이점은 Textbox가 강력한 유형이 아니라는 것입니다. TextboxFor는 형식화 된 뷰에서 사용할 모델의 with 요소를 도우미에게 알려주는 람다를 매개 변수로 사용합니다.

두 가지 모두에 대해 동일한 작업을 수행 할 수 있지만 가능하면 형식화 된 뷰와 TextboxFor를 사용해야합니다.


3

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에 추가되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.