0

我正在使用2個模型的簡單實踐Web應用程序:公司&客戶 - 都有自己的意見。在公司的編輯視圖中,我想從客戶視圖加載編輯表單,以便用戶可以立即更新公司&客戶。如何從MVC中的其他視圖加載編輯字段

公司/編輯視圖顯示客戶列表(我使用公司&客戶的視圖模型加載了客戶數據)。在'customer-info'div中,每個客戶名稱旁邊都有一個「編輯」圖標。單擊該按鈕將從客戶/編輯視圖中將編輯器表單加載到公司/編輯視圖中。

我是否正確地進行了構造,還是有更好的方法來組合這兩個模型的數據,以便用戶可以同時編輯它們?

注:我正在使用MVC實體框架核心& Visual Studio 2017來構建這個應用程序。

+0

一種方法是創建一個綜合模型同時具有'Customer'和'Company'在它的新觀點。這樣你就可以把這兩個表單放在一個頁面上,擁有所有的MVC驗證(如果你使用的話),並且當你提交表單時,你將得到兩個模型的組合來與服務器端一起工作 – scgough

回答

0

您可以構建一個包含來自公司和客戶要進行編輯

namespace Application.ViewModels 
{ 
    public class CompanyCustomerViewModel 
    { 
     public string CompanyName {get; set;} 
     public string CustomerName {get; set;} 
     // Other Fields You'd Like Edited 
    } 
} 

然後,您可以創建並加載在您的控制器與公司這個對象和客戶信息的信息的新視圖模型編輯方法並將CompanyCustomerViewModel而不是公司傳遞給視圖。

另見:你能做到這一點How to edit multiple models in a single Razor View

+0

如果而不是公共字符串CustomerName,我想使用公共列表客戶。我該如何啓動數據庫以在視圖中包含並顯示客戶列表(公司名稱旁邊)中的每個項目並允許用戶單獨編輯客戶? –

+0

如果您正在爲Many(客戶)執行One(公司),則可以在Customer模型類中添加一個名爲的int屬性。例如:public int CompanyId,然後向您的公司類添加一個IEnumerable 客戶。 –

+0

如何將這個可枚舉的Customer實體傳遞給我的DbInitiliazer類?例如,新公司{Name =「Some name」,WebsiteLink =「http://www.example.com」,ContactNo =「800-293-2091」,Email =「[email protected]」,Customers =。 ..} –

相關問題