Asp.net mvc ASP.net MVC2在强类型视图之间传递数据

Asp.net mvc ASP.net MVC2在强类型视图之间传递数据,asp.net-mvc,asp.net-mvc-2,strongly-typed-view,Asp.net Mvc,Asp.net Mvc 2,Strongly Typed View,我有下面的MVC2视图,它是用viewmodel强类型的,viewmodel包含一个db表中的值列表,我需要在视图中显示第二个表中的单个值,这是我的视图代码 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CustomerDatabase.WebUI.Models.CustomerSitesListViewMo

我有下面的MVC2视图,它是用viewmodel强类型的,viewmodel包含一个db表中的值列表,我需要在视图中显示第二个表中的单个值,这是我的视图代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"   Inherits="System.Web.Mvc.ViewPage<CustomerDatabase.WebUI.Models.CustomerSitesListViewModel>    " %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Customer Sites
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% foreach (var customerSite in Model.CustomerSites) { %>
<% Html.RenderPartial("CustomerSiteSummary", customerSite); %>
<%} %>
</asp:Content>
这是我呈现列表的局部视图

<%@ Control Language="C#"    Inherits="System.Web.Mvc.ViewUserControl<CustomerDatabase.Domain.Entities.CustomerSite>" %>
<div class="item">
<div class="customer-list-item">
<h2><%:Model.customer.CustomerName%></h2>
<%: Model.AddressLine1 %> 
<%: Model.AddressLine2%>

尽管intellisense允许我使用

<h2><%:Model.customer.CustomerName%></h2>

当我导航到视图时引发错误

对象引用未设置为对象的实例。 源错误:

Line 7:   <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
Line 8:   <% foreach (var customerSite in Model.CustomerSites) { %>
Line 9:   <%:Model.customer.CustomerName%>
Line 10:  <% Html.RenderPartial("CustomerSiteSummary", customerSite); %>
Line 11:  <%} 
第7行:
第8行:
第9行:
第10行:

第11行:看起来有一个模型属性未初始化。如果您在那一行添加断点并检查变量,我很确定您会找到1,即
null

是的,您是正确的,客户对象返回null,只需找出原因。如果是这种情况,则必须是您的存储库代码没有填充.customer属性。查看:var customerSitesToShow=customersiterespository.CustomerSites;谢谢,我现在设法用客户名称列表填充客户对象,我现在遇到的问题是我有两个列表要显示在视图中,一个是客户名称列表,另一个是站点详细信息列表,我真正需要的是一个包含客户名称和站点详细信息的列表。您能用问题和当前输出更新原始问题吗?您在上面发布的代码应该输出1个姓名列表,后跟2个地址字段。感谢您的快速回复,我在这里解释了这个问题
<h2><%:Model.customer.CustomerName%></h2>
Line 7:   <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
Line 8:   <% foreach (var customerSite in Model.CustomerSites) { %>
Line 9:   <%:Model.customer.CustomerName%>
Line 10:  <% Html.RenderPartial("CustomerSiteSummary", customerSite); %>
Line 11:  <%} 
 public IList<Customer> {get; set;}