我一直在阅读Scott Guthrie关于从控制器传递ViewData到视图的帖子,但我不认为这个教训适用于我的特定情况。
(注意:由于客户专有限制,我不能粘贴实际代码,所以如果我编造的案例有点愚蠢/令人困惑,我很抱歉。)
我有一个名为ScenarioController的控制器,它处理与创建Scenario模型相关的各种操作。用户将完成的各种操作是Scenarios的通用CRUD。我可以创建一个网站来处理Scenario模型。然而,我最近更新了Scenario模型,使其由各种子组件(其他对象的列表)组成。相应的视图使用jQuery Tabs加载部分视图,最终加载各个子组件数据的表单。不幸的是,这就是我遇到问题的地方。
我的Index页面目前看起来像这样:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
<div id="scenario">
<div id="tabs">
<ul>
<li><a href="#tab1">Tab 1</a></li>
<li><a href="#tab2">Tab 2</a></li>
<li><a href="#tab3">Tab 3</a></li>
</ul>
<div id="tab1"><% Html.RenderPartial("Tab1"); %></div>
<div id="tab2"><% Html.RenderPartial("Tab2"); %></div>
<div id="tab3"><% Html.RenderPartial("Tab3"); %></div>
</div>
<div class="submitButtons">
<input type="button" value="Save Scenario" id="SaveScenario" />
<input type="button" value="Submit Scenario" id="SubmitScenario" />
</div>
</div>
<% } %>
</asp:Content>
部分页面是强类型,与其表示的内容(主要是List<SomeObject>
)相对应。
在Scenario模型中,数据应该如何存储?我正在使用SQL数据库,并与Entity Framework进行接口交互。我是否仍需要表示各种项目列表的属性(这样我就可以使用强类型类传递ViewData),还是我可以直接从实体调用中传递ViewData(并根据需要进行转换)?