재우니의 블로그

 

 

 

 

1. javascript 단에서 jquery 의 post 로 컨트롤러를 호출한다.

 

        function GetAddressList(deptID, searchText)
        {
            var p = {
                DeptID: deptID,
                SearchText: searchText
            }

 

            $.post("@Url.Action("GetUserList", "AddressBook", new { area = "TaskSupport" })", { p: GetJsonToEncParam(p) },

            function (htmlStr) {
                $(".userList").html(htmlStr);
            });
        }

 

 

 

2. 호출한 컨트롤러는 PartialViewResult 로 반환하도록 하며, PartialView() 함수를 통해 파샬 뷰인 "SearchUserPV" 를 호출하고 model 인 users 를 전달할 수 있다.

 

 

public PartialViewResult GetUserList(string p)
{

var users = dal.SelUserDept(CompanyID, true, condition);            
return PartialView("SearchUserPV", users);

}

 

 

3. 파샬 뷰인 "SearchUserPV" 를 살펴보면, 모델과 간단히 특정 부분의 html 을 생성하는 것을 볼 수 있습니다.

 

 

 

@model List<Intra.Models.ViewUserInfo>

 

@foreach (var item in Model)
{
    <div class="col-lg-4">
        <div class="contact-box">
            <a href="#">
                <div class="col-sm-4">
                    <div class="text-center">
                        @Html.UserDisplayPhoto(item.PhotoPath, "img-circle m-t-xs img-responsive", "width:85px !important;  height:85px !important")
                        <div class="m-t-xs font-bold">@item.RankName @*/ @item.DutyName*@</div>
                    </div>
                </div>
                <div class="col-sm-8">
                    <h3><strong>@item.Name</strong></h3>
                    <p><i class="fa fa-map-marker"></i> @item.DeptName</p>
                    <address>
                        <strong>@item.RootDeptName</strong><br>
                        <abbr title="Email">E: </abbr>@item.Email<br>
                        <abbr title="Tel">T: </abbr>@item.OfficePhone<br>
                        <abbr title="Phone">P: </abbr>@item.PhoneNumber
                    </address>
                </div>
                <div class="clearfix"></div>
            </a>
        </div>
    </div>
}

 

 

이 파샬뷰가 랜더링 되면, 이는 jquery 의 post 의 결과값으로 html 이 전달되어 해당 dom 에 바인딩 합니다.

 

 

function (htmlStr) {
          $(".userList").html(htmlStr);
 });