ASP.NET MVC4 1つのビューで複数のモデル

今日は勉強会に参加してきたので、時間とれなくてちょっとしか出来てない。
検索してみたら StackOverflow がヒットしたんで、その情報を元に解決した。

asp.net mvc - Multiple models in a view - Stack Overflow
http://stackoverflow.com/questions/4764011/multiple-models-in-a-view

ビューのコンポーネント化(パーシャルビュー)と Tuple (組みオブジェクト)を使った簡易複合オブジェクトが回答として挙がってる。

当然のごとく Tuple を使った解決策より、パーシャルビューの方がベストアンサーに選ばれてる。
なので、それで実現してみた。

Index.cshtml

@Html.Partial("TweetView", new MyTwitter.Models.Tweet())
@Html.Partial("TweetListView")

TweetView.cshtml

@model MyTwitter.Models.Tweet

@using (Html.BeginForm(
  "Index", // アクション名
  "Home", // コントローラ名
  FormMethod.Post, // HTTPメソッド(method属性)
  new { enctype = "multipart/form-data"} // そのほかの属性
)) {
    @Html.TextBoxFor(
        model => model.Body, // プロパティ
        new { size = 15, maxlength = 140 } // そのほかの属性
    )
    <input type="submit" value="つぶやく" />
}

TweetListView.cshtml

@model IEnumerable<MyTwitter.Models.Tweet>

@foreach (var tweet in Model)
{
    <p>
    @tweet.Body<br/>@tweet.DatePosted
    </p>
}

現実的には問題あるんやけど、これでもオレオレツイートが出来るようになった。
眠いからもう寝る。