2012-08-17 60 views
1

我正在編寫一個存儲學校課程數據的應用程序,我需要在.Net MVC中的單個視圖中保存2個相關模型,但是我無法得到我的頭像圍繞如何將這些放在一起。在.Net MVC中從單個視圖中保存多個模型4

我有2個模型,主題和類,一個主題可以有很多類。在我看來,我想讓用戶輸入新主題的詳細信息,並在單個表單提交中爲該主題分配類。

實施例:
主題名稱
主題鉛教師姓名

(如果有許多類單一主體下面的字段可以是遞歸的)
類名稱
類開始時間
類教師名稱

用戶會前來輸入主題名稱和主題教師姓名,然後輸入新的班級名稱,開始時間和班級教師不適用我一旦完成了這些工作,他們就會提交表格,我需要將主題名稱和主題主教名稱保存到主題模型和類名稱,類別開始時間和班級教師名稱中。

  1. 如何在單個視圖中爲2個模型創建表單域?
  2. 如何提取數據並將其保存回2個獨立模型?

如果任何人都可以幫助我,並提供一些樣本代碼,這將是真棒,因爲我迷失在眼下!

回答

1

我可以推薦你使用包裝;怎麼?是一大類至極代表的觀點或形成你正在使用和將其設爲您的視圖模型類型,嘗試這樣的事情:

型號:

public class person 
    public property id as integer 
    public property name as string 
    public property status as integer 
end class 

public class marriage 
    public property husband as person 
    public property wife as person 
end class 

然後在視圖:

@Modeltype marriage 

<span>Wife Name:</span></br> 
@Model.wife.Name 

</br> 

<span>Husband Name:</span></br> 
@Model.husband.Name 

在行動,我們走班婚姻,而讓每個人分開

dim t_wife as person = marriage.wife 
dim t_husband as person = marriage.husband 

'Put save wife code here --- 

'Put save husband code here --- 
3

這正是viewModels的目的。您在UI創建一個新的類,並給它您需要在視圖訪問任何性質

public class SubjectClassViewModel() 
{ 
    public string SubjectName {get; set;} 
    public string LeadTeacherName {get; set;} 
    public string ClassName {get; set;} 
    public DateTime StartTime{get; set;} 
    public string TeacherName{get; set;} 
} 

那麼強烈鍵入您的視圖這個視圖模型 在你的控制器,收集視圖模型和數據保存到適當的表格

[HttpPost] 
public ActionResult Details (SubjectClassViewModel viewModel) 
{ 
    //can't really give details here without knowing what pattern you're using for data access 
    //but basically you want to 
    //save viewModel.SubjectName and viewModel.LeadTeacherName to the Subject table 
    //save viewModel.ClassName, etc to the Class table 
} 
相關問題