加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

是否可以将多个模型对象发送到ASP.NET MVC视图?

发布时间:2020-12-16 07:30:14 所属栏目:asp.Net 来源:网络整理
导读:在我的开始页面上,我想显示我在其他页面上的几个不同列表中的第一个项目 – 有点像SO上的“最近”页面显示最近的帖子和最近的评论.在我的情况下,我想列出留言簿中的两个最新帖子,以及下一个即将举行的活动. 为此,我如何将多个Model对象传递给View?它甚至可
在我的开始页面上,我想显示我在其他页面上的几个不同列表中的第一个项目 – 有点像SO上的“最近”页面显示最近的帖子和最近的评论.在我的情况下,我想列出留言簿中的两个最新帖子,以及下一个即将举行的活动.

为此,我如何将多个Model对象传递给View?它甚至可能吗?如果没有,应该怎么做?

解决方法

替代tvanfosson的解决方案是创建一个强类型视图,以便您获得cvompile-time检查并减少“魔术字符串”.

例…

假设您有班级:

public class FrontPageViewData
{
    public List<Post> Posts { get; set; }
    public List<Comment> Comments { get; set; }
}

然后在你的控制器……

public ActionResult Index()
{
    FrontPageViewData viewData = new FrontPageViewData();
    viewData.Posts = DB.Posts.ToList();
    viewData.Comments = DB.Comments.ToList();
    return View(viewData);
}

最后……在你看来.如果您设置视图注册行以使用它,这将允许您使用intellisense访问传入的视图数据(注意部分.这意味着Model属性将是传入的viewdata参数的实例,进入您的VIew方法控制器.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<FrontPageViewData>" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" runat="server">
<%= Model.Posts.Count().ToString(); %>
<%= Model.Comments.Count().ToString(); %>
</asp:Content>

当然这只是一个演示,我不会逐字使用这个代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读