2011-12-15 99 views
2

我一直在開發一個應用程序,它使用基於單個USP/dbml的模型,並使用ViewBags填充數據錄入和編輯視圖的查找列表。在我開始實現業務邏輯之前,這一直沒有問題。 Dropdownlists,因爲他們完成了ViewBag.llkup在腳本函數中不可用,除非明確傳遞給函數。我可以創建一個有多個USP的模型。我想知道什麼被認爲是關於這個問題的最佳做法。 感謝 布魯斯 我曾經在一個控制器下面的代碼:關於模型和視圖的最佳實踐是什麼?

using (var dc = new usp_TM_Select_ShortNameDataContext()) 
    { 
     String[] s = this.User.Identity.Name.Split('\\'); 
     string[] s2 = s[1].Split('.'); 
     string a = s2[0] + '.' + s2[1]; 
     ViewBag.Message = a.ToString(); 
     ViewBag.DetailsList = new SelectList((System.Collections.IEnumerable)dc.usp_TM_Select_ShortName().ToList(), "short_title", "short_title"); 
     var poc = new usp_ARD_Select_POCDataContext(); 
     return View(poc.usp_ARD_Select_POC().Single()); 
    } 

兩個是強類型的意見,但我怎麼同時返回,如果他們是在一個單一的模型視圖,以便它們可以使用(訪問)? 我有更復雜的例子,我有一個單一的記錄返回多個查找。我目前正在用ViewBag做這個,並且想使用ViewModels。 謝謝 布魯斯

+0

我有一個控制器的以下: – user1011441 2011-12-15 21:25:07

回答

0

最佳實踐99%的時間是根據您的模型(或ViewModel,如果適用)創建一個強類型的視圖。這樣,您可以爲特定於域的模型定製視圖。

+0

雖然這兩個答案都是正確的,他們並沒有完全回答我的問題。問題不在於是否使用強類型視圖(我完全同意),而是如何將業務邏輯應用於用戶使客戶端做出的選擇。我的comprimise是模型狀態可以在它的客戶端狀態在httppost中看到,所以我同時執行客戶端業務邏輯和服務器端業務邏輯。 – user1011441 2011-12-16 22:12:35

相關問題