Changes between Version 12 and Version 13 of HowTo/VisualStudioWeb2013Tutorial


Ignore:
Timestamp:
Sep 2, 2014, 12:29:33 PM (10 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/VisualStudioWeb2013Tutorial

    v12 v13  
    441441本質的には C# のプロパティはメソッドの構文糖衣に過ぎません。プロパティでできることは全てメソッドでも実現可能です[[FootNote(デスクトップアプリケーション作成で WPF を使う場合にビューモデルオブジェクトをビューにバインドする際、バインドするステータスは変数のようにアクセスできる必要があるという仕様があって、そういうケースではメソッドで代用できる必要がある、といったような例外はありますが…。)]]。とはいえ、プロパティを用いることでプログラムの表現がより直感的になるケースも多いですし、 C# では広く使われている書き方ですので、この際知っておくといいと思います。
    442442
     443==== モデルデータをコントローラがビューに渡す ====
     444
     445モデルが出来上がりましたので、次はこのコードを呼び出して取り出したデータをビューに渡すコントローラのコードを書きましょう。コントローラの !HomeController.cs ファイルを開いてください。
     446
     447まず、使用するモデルの名前空間にアクセスしやすいように、名前空間のショートカット名を宣言しましょう。ファイル先頭の `using` で始まる行の並びに、以下の行を追加します。
     448
     449{{{#!cs
     450using sc = HelloWorld.Models.SmallCase;
     451}}}
     452
     453次に、以前追加した `HemoController.Hello` メソッドに、以下のコードを記述します。
     454
     455{{{#!cs
     456        public ActionResult Hello()
     457        {
     458            var hw = new sc.HelloWorld();
     459            ViewBag.Hello = hw.Text;
     460
     461            return View();
     462        }
     463}}}
     464
     465`HelloWorld` クラスインスタンスの生成で、
     466
     467{{{#!cs
     468            var hw = new HelloWorld.Moels.SmallCase.HelloWorld();
     469}}}
     470
     471と書かずに済んだのは、その前に書いた `using` 行のおかげです。ただ、今回の例では名前空間のショートカット名はあまりにも短くしすぎてわかりづらいかもしれません。この辺も、ある程度は開発チーム内で命名規則を決めておいたほうがよいかもしれません。
     472
     473次の `ViewBag` は先程も出てきましたが、コントローラとビューの間でデータのやり取りをする際に使用する最も手っ取り早い手段の一つで、このオブジェクトには好きな名前のフィールドを作ってデータを放り込むことができるようになっています。放り込めるデータの型も、ある程度制限はありますが、割となんでも放り込めるようです。
     474
     475
     476{{{#!cs