【C#】ASP.NET Core MVCを使ってみよう。-Before-
今回はASP.NET Coreを使ってみようの課題があったので、投下します。
私が作ったやつを先輩にレビューしていただいたので、Before&Afterまで載せてみたいと思います…!(激変しててワロテルw)
私の心の中「( ゚Д゚)ハァ?」って感じだったわけですが、
課題に取り組む前に、ASP.NETって?どうすればええんや?!ってなったので以下のサイトを参考にしてチュートリアルを行いました。
torikasyu.com
まずは、Beforeから。
MVCテンプレートをほぼそのまま使ったので、HomeController.cs
のIndex
関数の中身を書き換えます。
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なので、めっっっっちゃ調べた。感謝。
qiita.com
GitHubにアップするだけでHP削られたので、Afterは今週中にあげます。
見違えるように変わってめっちゃ面白いし奥が深いなと思いました(小並)。