|
我有以下 MVC2 视图,它使用视图模型进行强类型化,其中包含数据库表中的值列表,我需要在视图中显示第二个表中的单个值,这是我的视图代码
<%@ Page Title=\"\" Language=\"C#\" MasterPageFile=\"~/Views/Shared/Site.Master\" Inherits=\"System.Web.Mvc.ViewPage \" %>
客户站点
<% foreach (var customerSite in Model.CustomerSites) { %>
<% Html.RenderPartial(\"CustomerSiteSummary\", customerSite); %>
<%} %>
这是视图模型,请注意,我在视图模型中包含了一个 Customer 成员,因为除了客户站点列表之外,我还想显示客户名称
命名空间 CustomerDatabase.WebUI.Models
{
公共类 CustomerSitesListViewModel
{
公共 IList CustomerSites { 获取;放; }
公共 PagingInfo PagingInfo { 获取;放; }
公共客户客户{得到;放; }
}
}
这是我的视图控制器代码
public ViewResult List([DefaultValue(1)] int page)
{
var customerSitesToShow = customerSiteRepository.CustomerSites;
var viewModel = 新的 CustomerSitesListViewModel
{
CustomerSites = customerSitesToShow.Skip((页 - 1) * PageSize).Take(PageSize).ToList(),
分页信息 = 新的分页信息
{
当前页=页,
每页项目数=页面大小,TotalItems = customerSitesToShow.Count()
}
};
返回视图(viewModel); //作为ViewData.Model(或简单的模型)传递给视图
}
这是呈现列表的部分视图,
<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>
<%:Model.customer.CustomerName%>
<%: Model.AddressLine1 %>
<%: Model.AddressLine2%>
尽管智能感知让我可以从视图访问客户对象
<%:Model.customer.CustomerName%>
当我导航到视图时抛出错误,
你调用的对象是空的。
来源错误:
第 7 行:
8号线:<% foreach (var customerSite in Model.CustomerSites) { %>
9号线:<%:Model.customer.CustomerName%>
10号线:<% Html.RenderPartial(\"CustomerSiteSummary\", customerSite); %>
第 11 行:<%}
我认为错误是由于视图渲染列表造成的,我尝试将 viewmodel 成员更改为
公共IList{获取;放;}
但这也行不通。
任何人都可以建议我实现这一目标的方法,或者就我应该去哪里提供任何建议。难道这是我下班或者上网都解决不了的问题吗?