2011-12-15 11 views
2

私はUSP/dbmlに基づいたモデルを使用するアプリケーションを開発しており、ViewBagsを使用してデータ入力と編集ビューのルックアップリストを作成しています。ビジネスロジックの実装が始まるまでこれは問題ありません。ドロップダウンリストはViewBag.llkupで実行されているため、関数に明示的に渡されない限り、Script関数では使用できません。私はそれに複数の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

Iコントローラで次があります。これらの答えの両方が正しいですが – user1011441

答えて

0

ベストプラクティスは、モデルに基づいて厳密なタイプのビューを作成することです(該当する場合はViewModel)。これにより、ドメイン固有のモデルのビューを調整できます。

+0

は、彼らは非常に私の問題に答えていませんでした。問題は、強く型付けされたビューを使用するかどうか(私は全く同意しません)ではなく、ユーザーがクライアント側で行う選択肢にビジネスロジックを適用する方法です。私の妥協は、モデル状態はhttppostのクライアント側の状態で見ることができるので、クライアントサイドのビジョンロジックとサーバーサイドのビジョンロジックの両方を実行します。 – user1011441

関連する問題