簡體   English   中英

MVC:在視圖中使用2個模型

[英]MVC:Using 2 models in a view

我的數據庫中有2個表,即Company和Branches。因此,理想情況下,一個公司可以有多個分支。使用實體框架,我為這兩個模型都添加了模型類。在Create Company的視圖頁面中,有一節添加該公司有多個分支機構。具體來說,它有一個用於添加一個分支機構的div。此后,有一個添加更多分支機構的鏈接。當用戶單擊鏈接時,將打開一個類似的div。完成相同的任務?

型號類別:

namespace Models
{
    using System;
    using System.Collections.Generic;

    public partial class Company
    {
        public Company()
        {
            this.Branches = new HashSet<Branches>();
        }

        public long ID { get; set; }
        public string Name { get; set; }
        public string QuickInfo { get; set; }

    public virtual ICollection<Branches> Branches { get; set; }
    }
}

創建視圖:

@model Models.Company

 @using (Html.BeginForm("Create", "Company"))
                    {  
@Html.TextBoxFor(x=>x.Name,null)
@Html.TextBoxFor(x=>x.QuickInfo,null)
}
<div>
<a href="#" >Add Branch</a>
                        <h3>Branch</h3>
@Html.TextAreaFor(x=>x.Branches.Add() /*what to do here*/
</div>

您可以使用ViewModel在視圖中使用多個模型

例如:

假設您要在視圖中使用兩個模型,即ModelA和ModelB。

ModelA
{
     public int PropA { get; set; } 
     public int PropB { get; set; } 
}

ModelB
{
     public int PropC { get; set; } 
     public int PropD { get; set; } 
}

現在要在單個視圖中使用兩個模型,您可以創建一個ViewModel

例如

ModelC
{
     public int PropX { get; set; } 
     public int PropY { get; set; } 
     public List<ModelA> ListOfModelA { get; set; }
     public List<ModelB> ListofModelB { get; set; }
}

因此,現在您的ModelC將同時具有ModelA和ModelB的列表,並且具有自己的屬性,並且可以在單個視圖中使用。

暫無
暫無

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

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