首先,这不是一个新问题。我的问题实际上是 gWiz 提供的答案之一的后续问题。他的帖子/答案的链接在这里:
Multiple models sent to a single view instance
另一种方法是不强烈输入视图和 页面指令中的母版页,但改为使用 来自MVC Contrib的基于泛型类型的ViewData扩展。这些 扩展基本上使用完全限定类型名称作为ViewData 字典键。实际上,打字的好处与 强类型页面方法,具有较少的类开销 需要的视图模型类的数量。然后在你的行动中
ViewData.Add<Car>(car); ViewData.Add<LayoutAData>(layoutAData);
并在您执行的视图中
<%= ViewData.Get<Car>().Color %>
并在您做的母版页
<%= ViewData.Get<LayoutAData>().Username %>
你可以缓存这些Get&lt;&gt;在视图中调用内联来缓解 铸造成本多次。
我的问题是关于最后一条评论:如何在视图中“缓存”get调用?每次都不会破坏和创建视图吗?
我确实尝试过搜索示例,但也许我没有问正确的问题?
大TIA:)
答案 0 :(得分:1)
他可能会说的是,而不是
<%= ViewData.Get<Car>().Color %>
<%= ViewData.Get<Car>().Make %>
您将其分配给变量并稍后使用该变量
<% var car = ViewData.Get<Car>(); %>
<%= car.Color %>
<%= car.Make %>