伝説のどいつまの伝説~失敗編~

岩美に永住したい新米エンジニアのあれやこれやな話。

【C#】ASP.NET Core MVCを使ってみよう。-Before-

今回はASP.NET Coreを使ってみようの課題があったので、投下します。
私が作ったやつを先輩にレビューしていただいたので、Before&Afterまで載せてみたいと思います…!(激変しててワロテルw)

課題:ASP.NET Core MVCを使って前回の課題を置き換えてみよう

私の心の中「( ゚Д゚)ハァ?」って感じだったわけですが、
課題に取り組む前に、ASP.NETって?どうすればええんや?!ってなったので以下のサイトを参考にしてチュートリアルを行いました。
torikasyu.com

まずは、Beforeから。
MVCテンプレートをほぼそのまま使ったので、HomeController.csIndex関数の中身を書き換えます。

public IActionResult Index()
{
    string url = @"http://d01tsumath.hatenablog.com/rss";

    try
    {
        // RSS読み込み
        XElement element = XElement.Load(url);

        // channelの取得
        XElement channelElement = element.Element("channel");

        //itemの取得
        IEnumerable<XElement> elementItems = channelElement.Elements("item");

        var titleList = new List<Title>(5);

        for (int i = 0; i < 5; i++)
        {
            XElement item = elementItems.ElementAt(i);

            // 先頭の<link></link>を取り出す
            var linkText = Regex.Replace(item.Element("link").ToString(), "<[^>]*?>", "");
            var title = new Title
            {
                Name = item.Element("title").Value,
                URL = linkText
            };
            titleList.Add(title);
        }

        ViewData["titles"] = titleList;
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }

    return View();
}

Modelsファイルの下にTitleクラスを作成しました。

public class Title
{
    public string Name { get; set; }
    public string URL { get; set; }
}

Views > Home > Index.cshtmlを編集します。

@{
    ViewData["Title"] = "Index";
}

<h2>どいつまブログRSS5件抽出します</h2>

@{
    foreach (var title in (List<Title>)ViewData["titles"])
    {
        <div>
            <a href="@title.URL" target="_blank">@title.Name</a>
        </div>
    }
}

はてなMarkdown記法はcshtmlサポートしてない模様…。

詳しく見たい場合は、Githubにアップしておいたのでそちらをご参照くださいませ。

github.com

初めてのGitHubなので、めっっっっちゃ調べた。感謝。
qiita.com

GitHubにアップするだけでHP削られたので、Afterは今週中にあげます。
見違えるように変わってめっちゃ面白いし奥が深いなと思いました(小並)。