Я пытаюсь добавить разбиение на страницы с бесконечной прокруткой на мое веб-приложение. У меня просто одна проблема, которая заключается в том, что мне нужно передать значение методу действия контроллера для извлечения следующей страницы в последовательности.Передача значения из PartialView в parent View
Действие выглядит следующим образом:
public ActionResult Index(string nextCursorMark)
{
if (Request.IsAjaxRequest())
{
var page = GetPagedArticles(15, "*:*", nextCursorMark);
return PartialView("_ArticlesPartial", page);
}
else
{
var page = GetPagedArticles(30, "*:*");
return View(page);
}
}
page
содержит строку, которая мне нужно передать. Когда визуализируется представление, значение добавляется из этого представления с помощью javascript, что означает, что следующий запрос (частичный), конечно, правильно выбран. Проблема в том, что все последующие запросы возвращают одно и то же значение, так как я не могу понять, как передать значение (используя MVC или javascript).
Скрипт добавлен в View (большая часть кода опущена):
@section scripts {
<script type="text/javascript">
$(window).scroll(function() {
if ($(window).scrollTop() == $(document).height() - $(window).height() && !hasData && !inProgress) {
$.ajax("@Url.Action("Index", "Articles", new { nextCursorMark = Model.CurserMark })", {
...
}});
</script>
}
Да, я знаю. Проблема заключается в том, что значение представляет собой какое-то хешированное строковое значение, которое автоматически генерируется всякий раз, когда запрашивается новая страница. К сожалению, это не так просто, как приращение этой переменной. Можно ли обновить представление без добавления всей страницы к себе с новыми данными вместо того, чтобы возвращать частичный вид? – thilemann
Нет, потому что вам нужно передать обновленное значение для 'newCursorMark' (в противном случае его просто повторится одно и то же представление). Зачем нужно хэшировать строку? Как это происходит? Когда генерируется? –
Это строка, сгенерированная SOLR как указатель на следующую последовательность данных в ее индексе. Это самый эффективный способ сделать глубокую разбивку на страницы с помощью SOLR. – thilemann