ASP.NET MVC - HTML 도구

HTML 도구는 HTML 출력을 수정하는 데 사용됩니다.

HTML 도구

MVC를 통해, HTML 도구는 전통적인 ASP.NET Web Form 컨트롤과 유사합니다.

ASP.NET Web Form 컨트롤의 경우와 마찬가지로, HTML 도구는 HTML을 수정하는 데 사용됩니다. 하지만 HTML 도구는 더 가볍습니다. Web Form 컨트롤과 달리, HTML 도구는 이벤트 모델과 View State를 가지고 있지 않습니다.

대부분의 경우, HTML 도구는 문자열을 반환하는 메서드입니다.

MVC를 통해, 고유한 도구를 생성하거나 내장된 HTML 도구를 사용할 수 있습니다.

표준 HTML 도구

MVC는 대부분의 일반적인 HTML 요소 유형의 표준 도구를 포함하고 있습니다. 예를 들어, HTML 링크와 HTML 양식 요소.

HTML 링크

HTML 링크를 표시하는 가장 간단한 방법은 Html.ActionLink() 도구를 사용하는 것입니다.

MVC를 통해 Html.ActionLink()는 뷰에 연결되지 않습니다. 컨트롤러 작업(컨트롤러 액션)의 연결을 생성합니다.

Razor 문법:

@Html.ActionLink("About this Website", "About")

ASP 문법:

<%=Html.ActionLink("About this Website", "About")%>

첫 번째 파라미터는 링크 텍스트이고 두 번째 파라미터는 제어자 작업 이름입니다。

위의 Html.ActionLink() 도구는 다음 HTML을 출력합니다:

<a href="/Home/About">About this Website</a>

Html.ActionLink() 도구의 여러 파라미터:

파라미터 설명
linkText locate point 요소의 내부 텍스트
actionName 작업 이름
controllerName 제어자 이름
protocol URL 프로토콜, 예를 들어 'http' 또는 'https'
hostname URL의 호스트 이름
fragment URL 단편 이름(locate point name)
routeValues 경로 값을 포함한 객체입니다.
htmlAttributes 해당 요소에 설정할 HTML 특성을 포함하는 객체입니다.

주의사항:제어자에 값을 전달할 수 있습니다. 예를 들어, 데이터베이스 편집 작업에 데이터베이스 레코드의 id를 전달할 수 있습니다.

Razor 문법 C#:

@Html.ActionLink("Edit Record", "Edit", new {Id=3})

Razor 문법 VB:

@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})

위의 Html.ActionLink() 도구는 다음 HTML을 출력합니다:

<a href="/Home/Edit/3">Edit Record</a>

HTML 양식 요소

다음 HTML 도구는 HTML 양식 요소를 표시(수정 및 출력)하는 데 사용할 수 있습니다:

  • BeginForm()
  • EndForm()
  • TextArea()
  • TextBox()
  • CheckBox()
  • RadioButton()
  • ListBox()
  • DropDownList()
  • Hidden()
  • Password()

ASP.NET 문법 C#:

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and 
다시 시도하세요.") %>
<% using (Html.BeginForm()){%>
<p>
<label for="FirstName">First Name:</label>
<%= Html.TextBox("FirstName") %>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">이름:</label>
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">비밀번호:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">비밀번호 확인:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">프로필:</label>
<%= Html.TextArea("Profile", new {cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">뉴스레터 수신하시겠습니까?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>