1

我需要将 2 个对象传递到页面以访问 Model.NewsItems 和 Model.Links (第一个是一类带有标题、内容等的新闻项目对象,链接是一组用于超链接的字符串,具体取决于系统是否上或下。

这是页面声明

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

如果我提到Model.Items- 我很好。但是,如果我指的是Model.HyperLink1,我不是。

如何将多个对象传递到页面中?我尝试导入两个名称空间但均未成功 - 即

<%@ Import Namespace="Tolling.Models.News" %>
<%@ Import Namespace="Tolling.Models.HyperLinks" %>
4

2 回答 2

1

创建一个包含两个模型集合的 ViewModel 类,然后将其传递给视图:

样品控制器:

var myNewModel = new MyNewModel()
{ 
    NewsItems = new List<NewItem>(), 
    HyperLinks = new List<HyperLink>() 
}

return View(myNewModel);

查看页面声明:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master"  
    Inherits="System.Web.Mvc.ViewPage<MyNewModel>" %>

然后,您可以使用新的 ViewModels 属性在视图中访问它们:

<%= Model.NewsItems %>
<%= Model.Hyperlinks %>
于 2009-11-03T04:48:09.150 回答
0

您可以使用 ViewData、TempData、Session 或 Cache 将额外的数据传递到视图中。我建议您使用ViewData。如 MSDN 所述:

获取或设置包含要在控制器和视图之间传递的数据的字典。

于 2009-11-03T04:39:29.950 回答