匿名型を使用してデータをビューに渡す例をいくつか見てきました。ただし、重要な情報が不足しているようです。次の不自然な例を考えてみましょう。
public class BlogController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Title(object args)
{
return View(args);
}
}
Index.aspx呼び出し
<%= Html.Action("Title", new { Name = "Jake" }) %>
そしてtitle.ascxは単純です:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<h3><%= Model.Name %>'s Blog</h3>
問題のアクションに移動すると、実行時例外が発生します。
'object' does not contain a definition for 'Name'
これを行うには他の方法があることを私は理解しています。ビューを強く型付けするか、データをViewDataオブジェクトにプッシュすることができます。この特定のケースでは、Nameプロパティを持つ任意のオブジェクトを渡して、Nameにバインドできるようにしたいと思います。足りないものはありますか?