2011-11-22 4 views
1

직장에서 나는 기존 MVC 3/Razor 프로젝트에 추가 기능을 추가해야했습니다. MVC를 사용하지는 않았지만 Web Forms에 정통합니다.MVC 3 면도기 - EF 쿼리를 기반으로 모달 표시

그러나 필요한 모든 것을 어디에 배치해야하는지 잘 모르겠습니다.

앱을 처음로드하면 로그인 페이지가 표시됩니다. 사용자가 성공적으로 로그인하면 대시 보드 유형 페이지가 표시됩니다.

새 기능은 사용자가 Due Date < Now의 FollowUpItems를 가지고 있는지 여부를 감지하는 것입니다. Count > 0에 텍스트가있는 모달 팝업이 표시되고 '추가 항목보기'링크가 표시됩니다.

후속 항목을보기 위해 컨트롤러와 동작이 이미 있습니다. 모달을 표시해야하며 모달을 객체의 재사용 가능한 유형으로 만들고 싶습니다. 컨트롤러/동작/매개 변수의 이름을 전달할 수있는 PartialView를 가정/생각하고 있습니다. ActionLink을 표시 할 수 있습니다. 모달 팝업 및 메시지 텍스트 등에서 사용할 수 있습니다.

모달을 여는 방법에 대한 약간의 지침이 필요합니다. 클릭에 첨부되지 않고 표현식이 true 또는 false를 평가하는지, 그리고 조각을위한 최고의 장소가 있습니다. 지도

+1

이 프로젝트에 jQuery가 있습니까? –

+0

예, 있습니다. 나는 내가 추가하고 싶은 무엇이든을 가질 수있다. – TheGeekYouNeed

답변

1

나는 사용자가 대시 보드 페이지를로드하는 작업에 FollowUpItems가있는 경우 감지하고 ViewBag에 정보를 저장하는 것입니다 사전에

감사합니다. 예를 들어,이 예에서

public ActionResult Dashboard() 
{ 
    ViewBag.HasFollowupItems = UserHasFollowupItems(); 
    return View(); 
} 

UserHasFollowupItems() 문자열 ','진실 '또는 거짓 같은 것을 반환합니다. 대시 보드 뷰에서

모달 데이터

<div id="followup_items"></div> 

다음 모달를 정의하고 결정 동일한 관점에서 document.ready()를 추가 장착한다되는 빈 DIV를 추가 모달할지 로드되는이 예에서는 /FollowupItems/Load

$(document).ready(function() 
{ 
    // define modal 
    $("#followup_items").dialog({ 
     autoOpen: false, 
     height: 'auto', 
     width: 825, 
     title: 'Followup Items', 
     position: [75, 75], 
     modal: true, 
     draggable: true, 
     closeOnEscape: true, 
     buttons: { 
      'Close': function() 
      { 
       $(this).dialog('close'); 
      } 
     }, 
     close: function() 
     {    
      $('.ui-widget-content').removeClass('ui-state-error'); 
     },   
    }); 

    if(@ViewBag.HasFollowupItems == 'true') 
    { 
     $('#followup_items').load("/FollowupItems/Load", function (data, txtStatus, XMLHttpRequest) 
     { 
      $('#followup_items').dialog('open'); 
     } 
    }); 
}); 

뷰에 대한 데이터를 생성하는 적절한 제어기/동작의 URL이다. 당신이 옳다면 이것에 대한 뷰는 페이지의 빈 followup_items div에로드 된 부분 뷰일 것입니다.

뷰에서 @ViewBag 객체를 사용할 수 있습니다.이 경우에는 모달을로드하거나 열어야하는지 여부를 나타내는 부울 값을 전달합니다. 외부 자바 스크립트 파일에서 ViewBag를 사용하는 방법을 찾지 못했기 때문에 일반적으로 내 View에 내장 스크립트 태그를 사용하여 ViewBag를 사용할 수 있습니다.

동일한 방법 (/FollowupItems/Load/@ViewBag.Userid) 또는 추가 작업에서 필요한 다른 데이터로 사용자 ID를 추가 할 수도 있습니다.

+0

다음 주셔서 대단히 감사합니다. 내가 집에 갈 때 이것을 보도록하겠습니다. 나에게 좋아 보인다. :) – TheGeekYouNeed