.net - 是否可以将多个模型对象发送到 ASP.NET MVC View ?

标签 .net asp.net-mvc entity-framework datamodel

在我的起始页面上,我想显示我在其他页面上的几个不同列表中的第一项 - 有点像 SO 上的“最近”页面显示最近的帖子和最近的评论。就我而言,我想在留言簿中列出最近的两篇帖子,以及下一个即将举行的事件。

为了做到这一点,我如何将几个模型对象传递给我的 View ?甚至有可能吗?如果不是,应该怎么做?

最佳答案

tvanfosson 解决方案的替代方案是创建一个强类型 View ,以便您获得 cvompile 时间检查和更少的“魔法字符串”。

例子...

假设你有这样的类(class):

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

然后在您的 Controller 中...
public ActionResult Index()
{
    FrontPageViewData viewData = new FrontPageViewData();
    viewData.Posts = DB.Posts.ToList();
    viewData.Comments = DB.Comments.ToList();
    return View(viewData);
}

而且,最后……在你看来。如果您设置 View 注册行以使用它,这将允许您使用智能感知访问传入的 View 数据(注意该部分。这意味着模型属性将是传入 View 数据参数的实例 Controller 。
<%@ 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>

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

关于.net - 是否可以将多个模型对象发送到 ASP.NET MVC View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514144/

相关文章:

c# - MATLAB/.NET Interop - 不允许在 .NET 对象上设置属性

c# - 请说明如何在.Net 4.6中使用EventListener类

asp.net-mvc - 本地化数据注释默认消息([必需] [StringLength]等)

asp.net-mvc - RedirectToRoute 如何影响 SEO?

c# - SQL Server session 在应用程序关闭时保持打开状态

c# - Microsoft 命名指南 - 什么是 "private interface members"?

.net - 如何在 WebBrowser Control 中设置当前 document.domain 以避免 "Access is denied"?

javascript - 从 API MVC C# 填充下拉选项值

entity-framework - EF 6 基于代码的迁移异常 : Microsoft. VisualStudio.Data.Tools.Package 不可序列化?

c# - 使用 Entity Framework 包含查询运行速度极慢