У меня возникли проблемы с обновлением частичного представления в моем индексном представлении. В принципе, на основе щелчка, я хотел бы иметь обновленную информацию.Нужно моделировать @ Html.action() нажатием кнопки
//controller
public ActionResult Index()
{
var filteredObservations = getFilteredObservationSessions().ToList();
var observationManagementVm = new ObservationManagementVM(filteredObservations);
return View(observationManagementVm);
}
public ActionResult indexPagedSummaries(int? page, List<ObservationSessionModel> data)
{
var alreadyFilteredObservations = data;
int PageSize = 10;
int PageNumber = (page ?? 1);
return PartialView(alreadyFilteredObservations.ToPagedList(PageNumber, PageSize));
}
Мой главный вид
//index.cshtml
@model AF.Web.ViewModels.ObservationManagementVM
....
<div id="testsim">
@Html.Action("indexPagedSummaries", new { data = Model.ObservationSessions })
</div>
<input id="new-view" value="Sessions" type="button" />
<script>
$("#new-view").click(function() {
$.ajax({
type: "GET",
data: { data: "@Model.FeedBackSessions" },
url: '@Url.Action("indexPagedSummaries")',
cache: false,
async: true,
success: function (result) {
console.log(result);
$('#testsim').html(result);
$('#testsim').show();
}
});
});
</script>
....
И мой частичный вид
//indexPagedSummaries.cshtml
@model PagedList.IPagedList<AF.Services.Observations.ObservationSessionModel>
@using (Html.BeginForm("indexPagedSummaries"))
{
<ol class="vList vList_md js-filterItems">
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item)
}
</ol>
<div>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page }))
</div>
}
Html.Action() возвращает то, что я хочу отлично, но это, кажется, не в состоянии быть вызванный нажатием кнопки.
Таким образом, я не получаю никаких ошибок, но URL-адрес не возвращает никаких данных. Когда я пытаюсь запустить url Observation/indexPagedSummary без передачи данных, я получаю ошибку System.ArgumentNullException, поэтому я предполагаю, что что-то переносится в модель представления. Любая помощь была бы настолько оценена.
Привет Калеб, Спасибо за ваш комментарий. К сожалению, добавление ваших изменений не повлияло на результат - я все равно получаю тот же ответ. Я проверил генерируемые URL, и похоже, что они фактически создают один и тот же. Если это помогает: http: // localhost: 60985/Observation/indexPagedSummaries? Data = System.Collections.Generic.List% 601% 5BAF.Services.Observations.ObservationSessionModel% 5D & data = System.Collections.Generic.List% 601% 5BAF. Services.Observations.ObservationSessionModel% 5D & _ = 1482453264080 –
У него есть данные в нем дважды, так в чем же разница между @ Model.FeedBackSessions и @ Model.ObservationSessions? –
Сессии обратной связи - это подмножество сеансов наблюдения, новые и отфильтрованные данные, которые я хотел бы передать в свое частичное представление. –