2009-12-21 2 views
0

저는 경험 많은 ASP.NET WebForm 개발자이며 MVC를 배우려고합니다. 나는 여전히 인라인 코드 프로세스 때문에 MVC에 너무 흥분하지 않는다. 어떤 시점에서 모든 코드에서 HTML을 볼 수 없으며 페이지를 렌더링하고 뷰 소스를 작성해야합니다.ASP.NET MVC 인라인 코드 (태그 비누)를 최소화하는 모범 사례?

나는 당신이보기 엔진을 교체 할 수 있습니다 알고 두 가지에 대해 궁금 :

1 기본보기 엔진보다 적은 인라인 코드를 사용하는보기 엔진이 있습니까? (실제로 뷰 엔진 비교를 수행하는 리소스가 유용합니다.)

2- 뷰에 대한 인라인 코드를 코딩하는 모범 사례를 설명하는 훌륭한 리소스가 있습니까? 불필요한 코드를 코딩하고 있거나 코딩하는 중일 수 있습니다.

3 ASP.NET MVC v2은 이전 버전보다보기 기능면에서 어떤 기능을 제공합니까?

+1

태그 비누 란 무엇입니까? 어쩌면 당신은 마크 업에 다양한 태그가 많이 있고 어제의 ASP 스파게티 코드와 비슷한 "태그 스프"를 의미했을까요? –

+0

이것은 세 가지 질문입니다. 2,3이 이전에이 사이트에서 답변되었습니다. – jfar

+3

@David - URL에 bit.ly를 사용하는 이유는 무엇입니까? bit.ly가 수행하면 오류가 발생하지 않을뿐만 아니라 모든 작은 URL과 동일한 문제가 발생합니다. 어디로 가는지 확실히 알 수 없습니다. 왜 실제 URL을 사용하지 않는가? @stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison – Matt

답변

1

나는 한동안 Spark view engine을 사용해 왔으며 결코 뒤돌아 본 적이 없습니다. 뷰에서 사용되는 서버 측 코드의 양을 본질적으로 줄이지는 않지만 (이는 사용자가 직접해야 할 일입니다) 주변 HTML과 "블렌드 인"하여 마크 업을 읽기 쉽도록 만들 수 있습니다 . 여기에 내가 일하고 있어요 현재 프로젝트에서 그것의 예입니다 (클래스와 특성 이름은 유죄를 보호하기 위해 변경되었습니다) :

<div id="Messages" if="Model.Messages.Count > 0"> 
    <MessageDetails each="Message message in Model.Messages" /> 
</div> 

은 당신이 기본적으로 여기보고있는 것은) 래퍼 <div> 태그 출력 목록에 메시지가있는 경우 (이 경우 Model.Messages) b) 목록의 각 항목에 대해 렌더링 된 부분보기 ("MessageDetails"라고 함). 동등한 웹 폼 버전은 같은 것입니다 :이 항상 (예 : 부분보기 렌더링 등) 서버 측 작업을 수행하는 데 걸리는 라인의 수는 감소하지 않지만

<% if (Model.Messages.Count > 0) { %> 
    <div id="Messages"> 
    <% foreach(Message message in Model.Messages) { %> 
     <% Html.RenderPartial("Container", message); %> 
    <% } %> 
    </div> 
<% } %> 

를, 그것은 시각적 복잡성을 감소 서버 측이 아닌 마크 업은 훨씬 더 유지 보수가 가능합니다.

+0

이 접근법은 더 이상 '<% %>'구문을 사용하지 않아도되므로 뷰를 유효한 XML로 유지할 수있는 이점이 있습니다. – TimGThomas

0

기본 제공보기를 사용하는 가장 좋은 방법은 HTML 도우미 확장과 부분보기를 사용하는 것입니다.

저는 개인적으로 UI 코드를 코드 숨김 코드에 숨기지 않고 도우미 클래스와 메서드로 캡슐화해야한다는 사실을 개인적으로 좋아합니다.