[英]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.