login register Sysop! about ME  
qrcode
    최초 작성일 :    2012년 07월 20일
  최종 수정일 :    2012년 07월 20일
  작성자 :    Anne
  편집자 :    Anne (김 태영)
  읽음수 :    22,061

강좌 목록으로 돌아가기

필자의 잡담~

이번 컬럼은 김태영(Anne)님이 번역해 주셨고요. ASP.NET MVC에서 강력한 형식 뷰와 동적 형식 뷰를 사용하는 방법에 대해 설명하고 있습니다. 컬럼의 원문은 http://www.asp.net/mvc/tutorials/views/dynamic-v-strongly-typed-views 입니다.

이 글은 ASP.NET MVC 공식 자습서인 http://www.asp.net/mvc/tutorials/views/dynamic-v-strongly-typed-views 의 글을 편역한 내용입니다. 마이크로소프트의 공식 번역 문서가 아니며 태오 사이트 MS 컬럼 번역팀에서 번역한 내용입니다. 그렇기에, 일부 오역이나 오타가 존재할 수 있는 점 미리 양해를 구합니다. 원문에 대한 모든 저작권은 마이크로소프트에 있으며, 컬럼 내용과 관련한 질의 문답 역시 원문 사이트에 문의하시는 것을 추천드립니다.

동적 형식 뷰와 강력한 형식 뷰

ASP.NET MVC 3에서는 컨트롤러(controller)에서 뷰(View)로 정보를 전달할 때 3가지 방법을 사용할 수 있습니다.

  1. 강력한 형식 모델 객체(strongly typed model object)를 사용
  2. 동적 형식(dynamic type)을 사용 : @model dynamic 코드를 사용합니다.
  3. ViewBag을 사용

다음 예제는 동적 형식 뷰(dynamic type view)와 강력한 형식 뷰(strongly typed view)를 비교하고 대조하기 위해 작성된 MVC 3 TOP Blog 응용 프로그램입니다. 컨트롤러는 간단한 블로그 목록을 만드는 것으로 시작하고 있습니다.

using System.Collections.Generic;
using System.Web.Mvc;

namespace Mvc3ViewDemo.Controllers {

  public class Blog {
    public string Name;
    public string URL;
  }

  public class HomeController : Controller {

    List<Blog> topBlogs = new List<Blog>
    {
      new Blog { Name = "ScottGu", URL = "http://weblogs.asp.net/scottgu/"},
      new Blog { Name = "Scott Hanselman", URL = "http://www.hanselman.com/blog/"},
      new Blog { Name = "Jon Galloway", URL = "http://www.asp.net/mvc"}
    };

    public ActionResult IndexNotStonglyTyped() {
      return View(topBlogs);
    }

    public ActionResult About() {
      ViewBag.Message = "Welcome to ASP.NET MVC!";
      return View();
    }
  }
}

IndexNotStonglyTyped() 메서드에서 마우스 오른쪽 클릭을 하고 뷰 추가(Add View)를 선택합니다.


출처 : http://i1.asp.net/umbraco-beta-media/3008187/WindowsLiveWriter_Dynamicv.StronglyTypedViews_E5CA_8475.NotStronglyTypedView.png

강력한 형식의 뷰 만들기(Create a strongly-typed view )의 체크 박스가 체크되지 않아 있는 것을 확인하세요. 추가(Add) 버튼을 누르면 생성된 페이지로 이동되며, 약간의 코드가 자동으로 생성되어 있는 걸 확인할 수 있습니다.

@{
    ViewBag.Title = "IndexNotStonglyTyped";
}

<h2>IndexNotStonglyTyped</h2>

On the first line of the Views\Home\IndexNotStonglyTyped.cshtml file,
add the model directive and the dynamic keyword.

이번 예제는 동적 뷰를 사용하고 있기 때문에, 인텔리센스(intellisense)의 지원은 받을 수 없습니다. 완성된 코드는 다음과 같습니다.

@model dynamic

@{
    ViewBag.Title = "IndexNotStonglyTyped";
}

<h2>Index Not Stongly Typed</h2>

<p>
<ul>
@foreach (var blog in Model) {
   <li>
    <a href="@blog.URL">@blog.Name</a>
   </li>
}
</ul>
</p>


출처 : http://i1.asp.net/umbraco-beta-media/3008199/WindowsLiveWriter_Dynamicv.StronglyTypedViews_E5CA_6646.NotStronglyTypedView.png

이번에는 강력한 형식의 뷰를 추가해 보도록 하겠습니다. 다음의 코드를 컨트롤러에 추가하세요.

public ActionResult StonglyTypedIndex() {
  return View(topBlogs);
}

강력한 형식 뷰가 아닐 때 즉, 동적 형식 뷰일 때와 동일한 반환 코드( return View(topBlogs); )가 사용된 것에 주목할 필요가 있습니다. StonglyTypedIndex() 메서드에서 마우스 오른쪽 클릭을 하고, 뷰 추가(Add View)를 선택하세요. 이번에는 [강력한 형식의 뷰 만들기]에 체크 박스를 체크하고, 모델 클래스로 Blog (Mvc3ViewDemo.Controllers)를 선택합니다. 그리고, 스케폴드 템플릿(Scaffold template)은 List을 선택합니다.


출처 : http://i1.asp.net/umbraco-beta-media/3008211/WindowsLiveWriter_Dynamicv.StronglyTypedViews_E5CA_5658.StrongView.png

강력한 형식의 뷰 템플릿 안에서는 인텔리센스의 지원을 받을 수 있습니다.


출처 : http://i1.asp.net/umbraco-beta-media/3008223/WindowsLiveWriter_Dynamicv.StronglyTypedViews_E5CA_7002.intellesince.png

여기를 클릭하시면 C#프로젝트를 다운로드 받을 수 있습니다.


authored by


 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})