2013-07-30 2 views
2

내 애플리케이션에서 div.load() jquery를 사용하여 내 뷰에서 부분 뷰를로드했습니다. 내 부분보기에서 값을 업데이트하고 jquery를 사용하여 동일한보기에서 부분보기를 표시하려고합니다. 그것을 구현하는 다른 방법이나 샘플이 있습니까?동일한 뷰에서 부분 뷰 표시 mvc4

공통보기

<body> 
    <div class="block-content" style="width: 200px;"> 
    <ul> 
     <li><a id="MyAccount" class="common"><strong>Account Dashboard</strong></a></li> 
     <li><a id="AccountDetails" class="common">Account Information</a></li> 
     <li><a id="AddressBook" class="common">Address Book</a></li> 
     <li><a id="MyOrders" class="common">My Orders</a></li> 
    </ul> 
    </div> 
    <div id="divDynamic" class="order"> 
    </div> 
    </body> 

jQuery를 링크

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('.common').click(function() { 
       var pageid = this.id; 
       LoadPartialView(pageid); 
      }); 
     }); 

     function LoadPartialView(pageid) { 
      $("#divDynamic").empty(); 
      $("#divDynamic").load("/WPindex/" + pageid, 
      function (response, status, xhr) { 
       if (status == "error") { 
       alert("An error occurred while loading the results."); 
       } 
      }); 

     } 
</script> 

컨트롤러

public ActionResult AccountDetails() 
{ 
    return PartialView(); 
} 
[HttpPost] 
public ActionResult AccountDetails(string FirstName, string LastName, 
string Email, string DOB,string PhoneNo, string Gender) 
{ 
    return PartialView(model); 
} 
의 클릭에 부분 뷰를 diaplay하기

jQuery를이

$(document).ready(function() { 
$('.button').click(function() { 
    LoadPartialView(); 
}); 
}); 
function LoadPartialView() { 
var FirstName = document.getElementById("FirstName").value; 
var LastName = document.getElementById("LastName").value; 
var Email = document.getElementById("Email").value; 
var DOB = document.getElementById("DOB").value; 
var PhoneNo = document.getElementById("PhoneNo").value; 
var Gender = $('#Gender optionelected').attr('value'); 

$("#divDynamic").load("/ControllerName/AccountDetails?", { 
'FirstName': FirstName,'LastName': LastName, 'Email': Email, 
'DOB': DOB, 'PhoneNo': PhoneNo,'Gender':Gender 
    }, 
    function (response, status, xhr) { 
    if (status == "error") { 
    alert("An error occurred while loading the results."); 
    }      
    }); 
    } 

나는 부분보기 값을 업데이트하고, 같은보기 부분보기를 표시하려 부분보기 값을 업데이트하고 같은보기에서 부분 뷰를로드합니다. 부분보기를 사용하는 동안 강력한 성능 문제가 있습니다. 내 코드에서 실수. ? 내 방식이 잘못 되었습니까?

답변

0

AccountDetails 동작 방법 모두에 중단 점을 넣습니다.
로드 메서드는 요청에서 get 메서드를 사용하고 두 번째 작업 메서드는 HttpPost 특성으로 장식되어 있다고 생각합니다. jQuery.ajax

0

사용이 :

var myUrl = "/ControllerName/AccountDetails?FirstName=" + FirstName + 
    "&LastName=" + LastName + 
    // ... other query strings ...   

$.ajax({ 
    url: myUrl,   
    success: function (data, textStatus, jqXHR) { 
     $("#divDynamic").html(jqXHR.reponseText); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert(jqXHR.responesText); 
    } 
    // ... any other ajax options ... 
}); 
+0

가 성능 문제를 제공으로 동일한보기에 표시 할 부분보기/게시물을 업데이트 JQuery와 이외의 다른 방법이 있습니까
는 jQuery를의 ajax 방법을 사용하십시오. – kk1076

+1

@ kk1076 - 네 부분 뷰에서'@ Ajax.BeginForm()'을 사용할 수있다. – AminSaghi

관련 문제