2010-12-07 2 views
1

jQuery를 사용하여 PartialView를로드하려고합니다. 이 페이지의 첫 번째로 로딩 할 때 벌금이 부과됩니다. 하지만 저장 버튼을 누를 때 PartialView를 다시로드 할 수 있어야합니다. 내가 다시로드,하지만 이번에는 PartialView 내가 다시 얻을 수 있습니다. 나는. PartialView를 기본 페이지의 일부로로드하지 않고 오히려 자체 페이지로로드합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 에로드ASP.NET MVC 2 응용 프로그램의 jQuery에서 PartialView를 다시로드 하시겠습니까?

 $.get('<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>', function (data) { 
      $('#tasksDiv').html(data); 
     }); //This part works fine on first load of the page 

     $('#savenewtask').click(function (event) { 
      event.preventDefault(); 
      $.get('<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>', function (data) { 
       $('#tasksDiv').html(data); 
      }); 
     }); //This only loads the PartialView, but not as part of the main page... 

버튼 및 사업부 : 여기

는 관련보기에서 jQuery를의 부분입니다

<p> 
     <input type="button" value="Spara" id="savenewtask" /> 
    </p> 

<div id="tasksDiv"> 
</div> 

UPDATE :

그것은 사실 일, I 페이지에있는 두 개의 입력란을 혼란스럽게 만들었습니다. 하지만 간단한 질문으로 바꾸겠다. PartialViews로 이런 일을하는 가장 좋은 방법인가? 아니면 다른 방향으로 가야 할까? (즉, 나는 그것이 최선의 방법이라는 것을 알지 못하면서 내가 원하는 것을 성취 할 수있는 방법을 찾아 내려고 노력했다.)

+2

는 "#tasksDiv는"페이지에 두 번 이상 나타 납니까? 나는 당신이 대답을 받아들이지 않는다는 것을 당신이 살 수 있도록 돕고 싶습니다 ... – hunter

+0

위의 업데이트를보십시오. 정말? 나는 가능한 한 많이 대답을 받아들이려고 노력한다고 생각합니다. 물론 때로는 일부 질문에 대한 유용한 대답을 얻지 못하고 그다지 할 일이 많지 않습니다. – Anders

답변

0

일반적으로 innerHtml을 설정하는 load 메서드를 사용했습니다.

var url = '<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>' 
$("#tasksDiv").load(url); 
+0

죄송합니다. 저의 실수는 두 입력란을 혼동 시켰습니다. 실제로는 정상적으로 작동합니다. 그러나 나는 내 질문에 대해 다시 말하고 그 답을 대신 받아 들일 것이다. 위의 업데이트를 참조하십시오. – Anders

+0

나는 항상 최소한의 저항 경로를 택한다.'.load()'는 그것을 제공한다. 대리자/콜백이 필요하지 않으며 구문이 더 명확하게 읽습니다. "이 div를 가져 와서이 URL의 내용을로드하십시오." get + 콜백을 수행하는 데는 아무런 문제가 없습니다. 방금 더 많은 코드가 필요하다는 것을 알았습니다. 그러나 간단한'.load() '호출을 통해 필요한 경우가있을 수 있습니다. 표시하기 전에 반환 값을 처리하고 싶다면 ... – Nate

관련 문제