2014-07-12 1 views
2

저는 C#으로 오랜 세월 콘솔, 서비스 및 Windows 폼 앱을 개발해 왔으며 웹 개발 및 MVC를 시작하기 시작했습니다. 누군가가 올바른 방향으로 나를 안내 할 수 있기를 바랍니다. 내가하고 싶은 것을 이루십시오.부분보기, 사용자 정의 컨트롤 또는 다른 것?

내가 연구하고있는 프로젝트에는 C# ASP MVC 4 응용 프로그램을 기반으로 PHP 기반의 출퇴근 시간 기록 시스템이 포함되어 있습니다.

이 시스템의 주된 목적은 프로젝트 & 작업을 포함하는 행과 각 요일의 열 및 마지막 열과 행의 합계를 사용하여 프로젝트에 대해 작업 시간을 예약하는 방법을 사용자에게 제공하는 것입니다 이 같은 :

내가 좋은 깨끗하고 읽을 수있는 코드를 작성 믿고, 내가보기에 추가 코드의 양을 최소화하려는, 그래서 중첩의 끔찍한 혼란을 개발하지 않으
  mon tue wed thu fri sat sun total 

Project 1 0:00 1:00 0:00 2:00 0:00 0:00 0:00 3:00 
Project 2 0:30 0:00 5:00 0:00 0:00 0:00 0:00 5:30 
Project 3 0:00 0:00 0:00 4:00 5:00 0:00 0:00 9:00 

Total  0:30 1:00 5:00 6:00 5:00 0:00 0:00 17:30 

단일보기 내의 루프. 내가 바라는 부분은 각 구성 요소를 관리 가능한 덩어리로 나누는 것입니다. 예를 들어 전체보기를 고유 한 엔터티로 만든 다음 각 프로젝트 행마다 다른 중첩 된 엔터티를 사용합니다.

내가 수행 한 연구 결과에 따르면 MVC 4 View User Control 또는 Partial View 일 수 있습니다. 그러나 이러한 항목 각각에 대해 실제로 설계된 내용을 찾을 수는 없습니다.

이상적으로는, 내가 그 안에 코드가 전달 된 목적에 따라 출력을 구축 할 수 있도록 제어 /보기에 하나 이상의 개체를 통과 할 수 있도록하려는 것입니다.

을 어떻게하는 가장 좋은 방법입니다 이것을 달성? 사용자 컨트롤, 부분보기 또는 완전히 다른 무언가? 난 사용자 컨트롤을 무엇을 말할 수에서

답변

1

는 기존의 ASP.NET 웹 페이지에있는 MVC의 상당 부분 도면이다.

부분보기는 일반보기에 포함 할 수있는보기입니다. 예를 들어, 서로 다른 여러 페이지에 주석을 표시 할 사이트가있는 경우를 예로들 수 있습니다. 사용자는 한 페이지에서 자신의 댓글 기록을 볼 수 있으며 사용자는 사이트의 다른 부분에있는 뉴스 또는 블로그 기사에서 댓글을 볼 수도 있습니다. 주석을 부분보기로 만들어서 기사 및 사용자 주석 기록에 모두 포함시킬 수 있습니다. 그런 다음 주석보기를 변경해야하는 경우 두 위치에서 모두 업데이트됩니다.

모델을 부분 뷰로 전달할 수도 있습니다. 예를 들어 위에 제공된 예제를 사용하십시오.

@model Application.ArticleModel 

<div> 
    <h2>@Model.Title</h2> 
    <article>@Model.Body</article> 

    @foreach(var comment in Model.Comments) 
    { 
     @Html.RenderPartial("_CommentPartial", comment) 
    } 
</div> 

을이처럼 될 것입니다 부분 뷰를 사용하여 문서에서 이러한 의견을 표시 할 수

public class ArticleModel 
{ 
    public string Title { get; set; } 
    public string Body { get; set; } 
    public IEnumerable<CommentModel> Comments { get; set; } 
} 

public class CommentModel 
{ 
    public string Body { get; set; } 
    public string UserName { get; set; } 
} 

이제 하나 개의 방법 : 내가 같은 첨부 주석의 모음과 함께 기사가 있다고 가정하자 이 기사보기

@model Application.CommentModel 
<div> 
    <p>@Model.Body</p> 
    <span>Written by @Model.UserName</span> 
</div> 

많은 청소기되고 당신은뿐만 아니라 다른 곳에서 부분보기를 사용할 수 있습니다 그리고 여기에 그 부분도 같이 볼 수 있었다거야. 또 다른 방법은 주석 컬렉션을 부분 뷰로 전달한 다음 foreach 루프를 뷰에 넣는 것입니다.

온라인으로 많은 설명이 있지만 더 나은 방법이지만 희망이 있습니다.

+1

많은 감사.당신의 대답을 읽은 후에, 나는 부분적인 관점에 초점을 맞추었고 다음과 같은 흥미로운 기사를 발견했습니다. [부분보기 란 무엇이며 언제 사용해야합니까?] (http://rachelappel.com/razor/partial-views-in-asp- net-mvc-3-w-the-razor-view-engine /)를 사용합니다. 바라기를 이것은 이것을 읽는 다른 사람들에게 유용 할 것입니다. – Bryan

관련 문제