Давайте начнем с некоторых основных действий контроллера:
public class FeiertagController
{
IFeiertagService feiertagService = new FeiertagService();
public ActionResult EditFeiertag()
{
// ... return your main edit view
return View();
}
// Will be called by your jquery ajax call
public PartialResult GetFeiertagTable()
{
var feiertagData = messageService.getLatestFeiertagData();
var viewModel = new FeiertagViewModel();
feiertagViewModel.feirtagTableData = feiertagData;
return PartialView("FeiertagTableView", viewModel);
}
}
Итак, EditFeiertag () используется для визуализации всей вашей страницы редактирования, и эта страница будет вызывать GetFeiertagTable (), когда она хочет асинхронно визуализировать ваше частичное представление.
Теперь, на ваш взгляд, допустим, у вас есть что-то вроде:
<div id="Container">
<div id="LeftPanel">
// ... Some menu items
</div>
<div id="RightPanel">
<a id="ReloadLink" href="#">Reload Table</a>
<div id="FeiertagTable>
<% Html.RenderPartial("FeiertagTable", Model.feiertagTableData); %>
</div>
</div>
</div>
Это отлично работает и загрузит ваш стол один раз. Но вы хотите перезагрузить таблицу Feiertag, если щелкнете по определенному элементу (в нашем случае #ReloadLink).
Добавьте следующее к
части вашей страницы:
<head>
<script src="../../Scripts/Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#ReloadLink').click(function(e)
{
e.preventDefault(); // stop the links default behavior
$('#FeiertagTable').load('/Feiertag/GetFeiertagTable');
});
});
</script>
</head>
Это затем добавит событие в событие click для вашей ссылки перезагрузки, которое вызовет метод jquery load (). Этот метод является упрощенным запросом получения ajax, и он заменит содержимое выбранного div (FeiertagTable) тем, что возвращается.
Наше действие контроллера GetFeiertagTable () вернет частичное представление, которое затем вставляется в этот div.
Надеюсь, это направит вас в правильном направлении!