Changes between Version 13 and Version 14 of HowTo/VisualStudioWeb2013Tutorial


Ignore:
Timestamp:
Sep 2, 2014, 4:39:51 PM (10 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/VisualStudioWeb2013Tutorial

    v13 v14  
    441441本質的には C# のプロパティはメソッドの構文糖衣に過ぎません。プロパティでできることは全てメソッドでも実現可能です[[FootNote(デスクトップアプリケーション作成で WPF を使う場合にビューモデルオブジェクトをビューにバインドする際、バインドするステータスは変数のようにアクセスできる必要があるという仕様があって、そういうケースではメソッドで代用できる必要がある、といったような例外はありますが…。)]]。とはいえ、プロパティを用いることでプログラムの表現がより直感的になるケースも多いですし、 C# では広く使われている書き方ですので、この際知っておくといいと思います。
    442442
     443[[FootNote]]
     444
    443445==== モデルデータをコントローラがビューに渡す ====
    444446
     
    473475次の `ViewBag` は先程も出てきましたが、コントローラとビューの間でデータのやり取りをする際に使用する最も手っ取り早い手段の一つで、このオブジェクトには好きな名前のフィールドを作ってデータを放り込むことができるようになっています。放り込めるデータの型も、ある程度制限はありますが、割となんでも放り込めるようです。
    474476
    475 
    476 {{{#!cs
     477{{{#!cs
     478ViewBag.Name = "Toshiyuki Murayama";  // 文字列
     479ViewBag.Born = new Date(1978, 2, 7);  // 日付
     480ViewBag.Tall = 166.2;                 // 数値
     481
     482ViewBag.Hello = new sc.HelloWorld();  // モデルオブジェクトも入れようと思えば入れられる
     483}}}
     484
     485==== 受け取った値を表示するコードをビューに書く ====
     486
     487それではいよいよ受け取った値を表示するコードを書きます。今度はビューの Home\Hello.cshtml ファイルを開いてください。
     488
     489今までと同じ表示結果では面白く無いので、既にある `<h2>` タグの行の下に、新しく以下の行を付け加えましょう。
     490
     491{{{!#text/html
     492<h2>Hello, World</h2>
     493
     494<p>モデルから受け取った値: <strong>@ViewBag.Text</strong></p>
     495}}}
     496
     497説明の必要はないかもしれませんが一応解説すると、 Razor 記法により、 `@ViewBag.Text` と書かれた場所には、 C# 言語での `ViewBag.Text` を評価して得られる値が HTML 出力されます[[FootNote(これが `string` 型の文字列の場合、正確には '''HTML エスケープ処理されてから出力'''されます。つまり、入っている文字列値がそのままブラウザ上に表示されるということです。)]]。つまり、うまく行けばこの部分は以下のように HTML 出力されるはずです。
     498
     499{{{!#text/html
     500<h2>Hello, World</h2>
     501
     502<p>モデルから受け取った値: <strong>Hello, World</strong></p>
     503}}}
     504
     505それでは、 Ctrl + F5 キーを押して、実際どのように動くか見てみましょう。以下のように表示されれば成功です。
     506
     507
     508[[FootNote]]