2010-12-07 2 views
1

Я пытаюсь использовать jQuery для загрузки PartialView. Это делается при первой загрузке страницы. Но тогда мне нужно перезагрузить PartialView, когда нажата кнопка сохранения. Я получаю перезагрузку, но на этот раз PartialView - это все, что я верну. То есть Я не загружаю PartialView как часть главной страницы, а скорее как собственную страницу. Что я делаю не так?Перезагрузка PartialView из jQuery в приложении ASP.NET MVC 2?

Вот соответствующие части Jquery в Вид:

 $.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... 

Кнопка и ДИВ для загрузки в:

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

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

UPDATE:

Он действительно работал, я просто путают два поля ввода, которые у меня есть на странице. Но я перефразирую вопрос до простого: это лучший способ сделать такие вещи с PartialViews, или я должен идти по этому пути другим способом? (I.e. Я просто пытался выяснить способ достижения того, чего я хотел, не зная, является ли это способом «лучшей практики»).

+2

"#tasksDiv" появляется несколько раз на странице? Я хочу помочь вам купить, вы не принимаете ответы ... – hunter

+0

См. Обновление выше. В самом деле? Думаю, я стараюсь принимать ответы как можно больше. Конечно, иногда я не получаю никаких полезных ответов на некоторые вопросы, а потом не так много делать, не так ли? – Anders

ответ

0

Я обычно использовал метод load, который устанавливает innerHtml.

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

Извините, моя ошибка, я смутил два поля ввода. На самом деле это работает нормально. Тем не менее, я буду перефразировать мой вопрос и принять ответ за это. См. Обновление выше. – Anders

+0

Я всегда иду по пути наименьшего сопротивления '.load()' обеспечивает это. Нет необходимости в делетете/обратном вызове, и синтаксис читается более четко. «Возьмите этот div и загрузите содержимое этого URL-адреса в него». Нет ничего плохого в выполнении get + callback; Я просто нашел, что требуется больше кода; однако могут быть случаи, когда это необходимо по простому вызову '.load()', скажем, если вы хотите обработать возвращаемое значение перед его отображением ... – Nate

Смежные вопросы