Динамическая HTML-страница новостей не работает в C # - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь создать динамическую новостную HTML-страницу. Проблема возникает, когда я пытаюсь создать HTML динамически. Я новичок в C #, и не знаю, что не так. Вот мой код c #:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using NewsAPI;
using NewsAPI.Models;
using NewsAPI.Constants;

namespace NewsDemo
{
    public partial class Default1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                LoadNewsPage();
            }
        }

        protected void LoadNewsPage()
        {
            try
            {
                var newsApiClient = new NewsApiClient("key");
                List<string> mylist = new List<string>();
                mylist.Add("google-news");
                mylist.Add("bbc-news");
                mylist.Add("cnn");
                mylist.Add("the-new-york-times");
                var articlesResponse = newsApiClient.GetTopHeadlines(new TopHeadlinesRequest
                {
                    Sources = mylist,
                    Language = Languages.EN
                });
                if (articlesResponse.Status == Statuses.Ok)
                {             
                    string resulHtml = "";
                    resulHtml += "<table>";
                    foreach (var article in articlesResponse.Articles)
                    {
                        resulHtml += string.Format("<tr style='valign:top'>", "");
                        resulHtml += string.Format("<td width=20%><img src='{0}' width='250px' height='200px'></img></td>", article.UrlToImage);
                        resulHtml += string.Format("<td width=80%><a href='{0}'><h3>{1}</h3></a>{1}<br>{2}<br>{3}<br><br></td>", article.Url, article.Title, article.Author, article.Description);

                        resulHtml += string.Format("</tr>", "");
                    }

                    resulHtml += string.Format("</table>", "");
                    Label1.Text = resulHtml;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
    }
}

Всякий раз, когда я пытаюсь запустить его (в VS), открывается Chrome, и страница никогда не загружается. Я понятия не имею, что не так, поскольку у меня есть консольное приложение, которое может извлекать новости и работает отлично.

Любая помощь приветствуется. Спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

EDIT

Ваши комментарии к моему ответу помогли мне понять больше. Я думаю, что ваша проблема зависит не от вашего кода, а от известной проблемы с Chrome + Visual Studio

Короче говоря:

  1. Либо вы можете отладить в другом браузере
  2. Или вы отключаете отладку JavaScript

Я протестировал ваш LoadNewsPage(), и он действительно отлично работает с HTML. То, что кажется странным, это то, что вы вставляете HTML в текст Label.

Вместо этого добавьте этот HTML-код в разметку:

<div id="MyNewsSection" runat="server"></div>

А затем замените это

Label1.Text = resulHtml;

с

MyNewsSection.InnerHtml = resulHtml;

Также, в качестве общей справочной информации по отладке, нажмите F12 в Chrome: если будут какие-либо ошибки, они будут показаны вам.

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