coding/c#

C# html helper

사과키라임파이 2022. 3. 23. 14:21

Ajax.BeginForm : Submit을 Ajax를 이용해서 한다는 점이 다름
Html.BeginForm 


- 기본형
@using(Html.BeginForm()) {
  각종 입력 태그 
    <div class row></div>
}

- return url이 있을 때 => /Index/Controller 
(return url = 이전에 내가 갔었던 프로젝트 내의 페이지)
@using(Html.BeginForm("Index" (액션), "Controller"(컨트롤러))) 
  각종 입력 태그
}

new {안에 여러가지 설정 가능}

@using(Html.BeginForm(
  "Action",      // 액션 명
  "Controller",    // 컨트롤러 명
  new {  id = "route", charset = "utf8" },  // 루트경로 
  FormMethod.Post,   // HTTP 메소드 (get, post)
  new { id="idName", enctype="multipart/form-data" @class = "className" } // 속성들(아이디 클래스 )
)) {
  각종 입력 태그
}

-----
요청 : 공을 받을 준비 (공을 달라고 할 준비)
응답 : 공을 던질 준비

Html.BeginForm() 헬퍼 메서드는 <form /> 태그를 자동으로 만들어주는 헬퍼 메서드다. 폼 태그를 직접 사용하지 않고 BeginForm 헬퍼 메서드를 사용하는 이유는 무엇일까? URL은 언제든 변경이 가능하기 때문에 헬퍼 메서드를 사용하게 되면 변경된 URL에 맞게 속성이 재지정되기 때문이다.

@using (Html.BeginForm()) { } 구문을 통해서 form 태그의 시작과 끝을 만들어주고, 이 안에 입력하는 폼 구성 요소를 앞뒤로 묶어 준다.


https://thebook.io/006824/ch27/02/03/

27.2.3 링크 및 경로 생성

Url.Action( )

Url.Action() 헬퍼 메서드는 특정 액션 메서드의 경로를 알려 준다. 뷰 페이지에서 @Url.Action("Index")를 요청하면 현재 컨트롤러의 액션 메서드의 경로를 반환해준다. 예를 들어 Home 컨트롤러 관련 뷰 페이지에서 다음과 같이 실행된다.

• @Url.Action("Index")

- /Home/Index

• @UrlAction("Index.", "Home")

- /Home/Index

 

 

Html.ActionLink( )

Html.ActionLink() 헬퍼 메서드는 직접 <a> 태그를 지정한 값으로 생성한다. Home 컨트롤러의 뷰 페이지에서 Html.ActionLink() 액션 메서드를 실행할 때의 결괏값은 다음과 같다.

• @Html.ActionLink("홈", "Index")

- <a href="/Home/Index">홈</a>

• @Html.ActionLink("홈", "Index", "Home")

- <a href="/Home/Index">홈</a>

• @Html.ActionLink("홈", "Index", "Home", new { Id = 1234 })

- <a href="/Home/Index/1234">홈</a>