簡體   English   中英

Asp.Net MVC-視圖->創建2個對象

[英]Asp.Net MVC - View -> Create 2 objects

首先,我對MVC Asp.Net意識真的很陌生。

我想知道如何在一個視圖中創建兩個對象(模型)?

因為如果我查看視圖頭,它是從一個模型繼承的:

\\ <%@頁面標題=“”語言=“ C#” MasterPageFile =“〜/ Views / Shared / Site.Master” Inherits =“ System.Web.Mvc.ViewPage”%>

因此,例如,如果我想在同一視圖(Aspx頁面)中創建MyObjectA和對象MyObjectB,那么處理該問題的最佳方法是什么?

我希望我已經清楚了...

如果您有一個模型對象“ Person ,另一個讓我們說“ Comment ,然后在同一視圖中要顯示人的詳細信息和添加到該人的注釋,則可能需要創建一個中間對象,有時稱為“數據傳輸對象”或“查看對象”。 因此,我創建了一個簡單的類:

public class PersonDetailDTO
{
    public Person PersonDetail {get; set;}
    public IList<Comment> Comments {get; set;}
}

..現在我可以將我的操作結果返回為PersonDetailDTO類型,而不是說Person 然后,將視圖也強類型PersonDetailDTO ,這使我很容易訪問PersonDetail數據和Comments集合。

例如,我對部分視圖之一使用這樣的視圖對象:

        public class AnnouncementsPartialViewData
        {
            public IList<Announcement> Announcements { get; set; }
            public object MonthlyPlannerRouteVals { get; set; }
            public object PreSchoolRouteVals { get; set; }
            public object ElementaryRouteVals { get; set; }
        }

..和局部視圖標題看起來像這樣:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<KsisOnline.Web.Controllers.HomeController.IndexViewData.AnnouncementsPartialViewData>" %>

..因此我可以輕松地從視圖中的該視圖類訪問類型化的數據,如下所示:

<% if (Model.Announcements.Count == 0)

如果通過“創建”是指將兩個對象從控制器“傳遞”到視圖,則應創建一個包含兩個對象的新類,並將其從控制器傳遞到視圖:

public class MyModel
{
  public MyObjectA ObjectA { get; set; }
  public MyObjectB ObjectB { get; set; }
}

然后,View定義將如下所示:

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

在控制器中,您將創建如下對象

...(in controller action)
return new MyModel { ObjectA = new MyObjectA(), ObjectB = new MyObjectB() };

從視圖中,您將訪問諸如

var myObjectA = Model.ObjectA;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM