#記事一覧
Visual StudioのASP.NET Core MVC で Web アプリを作成してみた(記事一覧)
#始めたきっかけ
- プライベートでは、Macがメイン
- デスクトップアプリを作ろうとしたけど、どうせならクラウドアプリの方が良いなと思った
- 色々調べたけど、一番簡単そうなやつ
#インストール
Visual Studio 2019 for Mac COMMUNITY をインストールする。
Microsoftのインストール手順のページ
#チュートリアルの実施
Microsoftのチュートリアル(ASP.NET Core MVC で Web アプリを作成する)を実行してみる。
チュートリアルの構成と概略は以下の通り。
Web アプリケーション(Model-View-Controller)プロジェクトの作成と、作成直後のプロジェクトを実行してみるチュートリアルです。
Title(上のModeling Toolの部分)と、container(下の@2020 - Modelin Toolの部分)の表示内容を変更していますが、実行結果は以下の通り。
##2. ASP.NET Core MVC アプリにコントローラーを追加する
追加したコントローラーが返した文字列をビューで表示するチュートリアルです。
冒頭にMVCアーキテクチャの各コンポーネントの概念が説明されています。
以下は私がざっくりと認識した内容です。
- モデル
- システムのデータを管理して、データにビジネスロジックをもたせ、機能を制御するコンポーネント。
- ビュー
- モデルデータなどの表示、入力を受け付けるユーザインタフェースを担うコンポーネント。
- コントローラー
- モデルとビューを制御するコンポーネント。
###チュートリアルで追加したコントローラーと実行結果
コントローラークラスを追加する。
追加したコントローラークラスを画像の様に置き換える。
namespace ModelingTool.Controllers
{
public class HelloWorldController : Controller
{
// GET: https://localhost:****/HelloWorld/
public string Index()
{
return "URLとコントローラが自動でひもづけられる。";
}
}
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}
}
▶︎で実行してみる。
追加したコントローラー名(Controllerは除く)をURLのサブディレクトリ(/HelloWorld)に指定する。
* Controllerを追加すると、サブディレクトリが自動で割り当てられる
https://localhost:****/(コントローラー名)/
"Controller"は含まれない
* 推奨されていたが、クラス名にControllerを付けなくても特に問題なくURLにアクセスできた
Welcomeにもアクセスしてみる。
* Index以外のメソッドは、/(コントローラー名)/(メソッド名)のサブディレクトリが割り当てられる
* 引数は任意に追加でき、URLのクエリ(?引数名=値)としてアクセスできる。2つ以上引数がある場合は、&で連結する。
追加したコントローラーがデフォルトのままだと、Index()はViewクラスを返す様になっているため、Viewクラスを追加していない状態では、リクエスト時に例外エラーとなる。
##3. ASP.NET Core MVC アプリへのビューの追加
Razorビューファイルを使用して、クライアントへの HTML 応答を生成するプロセスを完全にカプセル化するチュートリアルです。
###チュートリアルで追加したビューと実行結果
コントローラーのメソッドに紐付くビューを追加する。
* Viewの下に、Controllerと同じ名前のディレクトリ(HelloWorld)を作成する
* 作成したディレクトリ配下に、[Razor ビュー] を追加する
* [Razor ビュー] はコントローラーのメソッド分追加し、名前はコントローラーのメソッド名(Index、Welcome)と同じにする
追加したビュー(Index.cshtml)を以下の様に変更する。
@{
ViewData["Title"] = "Hellow";
}
<h2>Hellow World</h2>
<p>Hello from our View Template!</p>
コントローラーのIndexメソッドを追加時の状態に戻す。
実行して追加したビューが有効になっていることを確認してみる。
WelcomeのコントローラーもViewクラスに対応してみる。
public IActionResult Welcome(string name, int numTimes = 1)
{
ViewData["Message"] = "Hello " + name;
ViewData["NumTimes"] = numTimes;
return View();
}
@{
ViewData["Title"] = "Welcome";
}
<h2>Welcome</h2>
<ul>
@for (int i = 0; i < (int)ViewData["NumTimes"]; i++)
{
<li>@ViewData["Message"]</li>
}
</ul>
##4. ASP.NET Core MVC アプリへのモデルの追加
###チュートリアルで追加したモデルと実行結果
データモデルクラスを追加する。
EF Core SQL Server プロバイダーパッケージを追加する。
#Seriese