2010-12-23 8 views
0

MVC 3을 약간 망치고 부분 뷰를 올바르게 표시하는 데 문제가 있습니다. 여기 Asp.net의 PartialView MVC 3 RC2

내 딜레마 : 내 컨트롤러/액션,에 actionLink을 내 홈/인덱스보기에서

포스트/만들기 :

<p> 
    @Html.ActionLink("Create Post", "Create", "Post") 
</p> 
<div id="PostCreation"> 
</div> 

보기 기본 양식과 partialView입니다 만들기 내

: 제목, 내용 등 :

@using (Html.BeginForm()) 
{ 
    <div> 
     <fieldset> 
      <legend>Post Creation</legend> 

      <div class="editor-label"> 
       @Html.LabelFor(m => m.PostTitle) 
      </div> 
      <div class="editor-field"> 
       @Html.TextAreaFor(m => m.PostTitle) 
      </div> 
      <p> 
       <input type="submit" value="Publish" /> 
      </p> 
     </fieldset> 
    </div> 
} 

나는 속성에 클릭을 캡처 내 _Layout.cshtml 파일에 일부 jQuery를 추가

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('a').live('click', function() { 
       $.get($(this).attr('href'), function (html) { 
        $('#PostCreation').html(html); 
       }); 
      }); 
     }); 
</script> 

클릭하면 홈/색인보기에있는 포스트 크리에이션 div가 업데이트됩니다.

Firebug를 사용하여 jQuery를 단계별로 살펴보면 ParialView가 홈/색인에서 제대로 렌더링되지만 일단 jQuery 함수가 완료되면 Post/Create 양식을 표시하는 전체 새 페이지가 렌더링된다는 것을 알게되었습니다.

도움을 주시면 감사하겠습니다. 감사.

답변

1

jQuery의 탐색을 취소해야합니다.

이 당신에게 .live() 서명을 변경해보십시오 :

  $('a').live('click', function (e) { 
       e.preventDefault(); 
       $.get($(this).attr('href'), function (html) { 
        $('#PostCreation').html(html); 
       }); 
      });