Используйте кнопку, чтобы загрузить больше данных с сервера без обновления страницы - PullRequest
0 голосов
/ 24 декабря 2018

Мой сервер загружает статьи из xml и отправляет их на мой взгляд.Вместо этого я хотел бы отправить только некоторые статьи, а не все, и предоставить пользователю кнопку для загрузки других статей.Но как я могу отправить эти новые данные в мое представление без обновления страницы, возможно ли обновить только модель?

public IActionResult Index()
        {
            List<Article> articles = new List<Article>();

            XmlSerializer serializer = new XmlSerializer(typeof(List<Article>), new XmlRootAttribute("Articles"));
            using (StreamReader reader = new StreamReader(HostingEnvironment.WebRootPath + @"/articles/articles.xml"))
            {
                articles = (List<Article>)serializer.Deserialize(reader);
            }

            return View(articles);
        }


<div id="articles">
    @foreach (Article art in Model)
    {
        var articleImage = "/images/articles/" + art.Image + ".jpg";
        <article>
            <div class="article_title_and_date">
                <h2 class="article_title">@art.Title</h2>
                <p class="article_date">@art.Date</p>
            </div>
            <img src="@Url.Content(articleImage)" alt="image">
            <p>
                @art.Text
            </p>
        </article>
    }
</div> 

1 Ответ

0 голосов
/ 24 декабря 2018

Вам понадобится реализовать JavaScript для общения с вашим сервером через API.Вот базовый пример получения разных данных с сервера при каждом нажатии кнопки.

var postNumber = 1;

document.getElementById('getNextPost').addEventListener('click', function() {
  var currentPost = document.getElementById('currentPost');
  var url = `https://jsonplaceholder.typicode.com/posts/${postNumber++}`;

  fetch(url)
    .then(response => response.json())
    .then(json => currentPost.innerHTML = json.body)
})
<div id="currentPost">Some static content from the server</div>
<button id="getNextPost">Get Next Post</button>

В этом примере используется конечная точка JSON;однако вы можете читать значения из конечной точки XML, используя window.DOMParser внутри .then()

new window.DOMParser()).parseFromString(str, "text/xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...