ASP.NET MVC 2 Используйте Ajax для перезагрузки UserControl - PullRequest
2 голосов
/ 17 августа 2010

возможно ли использовать Ajax с ASP.NET MVC 2 для перезагрузки пользовательского элемента управления, передачи новой модели и обновления всех значений, которые использует эта модель, без обновления остального содержимого сайта?

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Я получил это работает!

У меня есть следующий код в контроллере:

[Authorize, HttpPost]
public ActionResult UpdateDinner(FormCollection formValues)
{
  if (Request.IsAjaxRequest())
  {
    Dinner Dinner = DinnerRepository.GetDinner(Convert.ToInt32(formValues["Date"]));
    return PartialView("DeclaratieWidget", Dinner);
  }
}

У меня есть этот код в моем представлении:

<script src="<%= AppPathHelper.Url(Request.ApplicationPath, "/Scripts/MicrosoftAjax.debug.js") %>" type="text/javascript"></script>
<script src="<%= AppPathHelper.Url(Request.ApplicationPath, "/Scripts/MicrosoftMvcAjax.debug.js") %>" type="text/javascript"></script>

<% using (Ajax.BeginForm("UpdateDinner", new AjaxOptions { UpdateTargetId = "Dinner" }))
  { %>
  <select id="Date" name="Date">
    <option value="<%= Dinner.Dinner_ID %>"><%= Dinner.Date.ToString("dddd d MMMM") %></option>
  </select>
  <input type="submit" value="Delete" />

<div id="avondeten">
  <% Html.RenderPartial("DeclaratieWidget", Model.Dinners[0]); %>
</div>

Так работает отлично! : D

1 голос
/ 17 августа 2010

Да, и вот один из способов сделать это:

Вы можете вызвать действие на контроллере из ajax (я использую jquery) и получить результат.Чтобы передать данные, вы предоставляете значения параметров для вызова $ .ajax (), а для рендеринга вы просто визуализируете партиал с любой моделью представления, подходящей для вашей партиля.

Чтобы отобразить содержимое, вы просто берете результат HTML, переданный обратно в ваш вызов $ .ajax (), и, как правило, заменяете содержимое div вашим результатом HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...