2009-08-31 7 views
2

ASP.NET MVCサイトのほぼすべてのページで、ユーザーに関する情報を使用しています。これは通常、モデルで作業している会社に関する情報をビューに渡すか、ビューでページのどの部分をユーザーが表示できるかを確認するための情報を引き出します。ASP.NET MVCでベースモデルを作成するのは良いか悪いのですか

すべてのモデルでユーザーを取得するのではなく、常にユーザーデータを簡単に利用できる方法はありますか?私。基本モデルをセットアップするか、ViewDataでユーザーを通過させる「マスター」コントローラーを用意する必要がありますか?

すべての考え、またはさらに優れたコードは非常に高く評価されます。

答えて

4

素晴らしいアイデアです。すべてのMVCプロジェクトでMasterModelを一貫して使用しています。

これを行うには、すべてのビューモデルをサブクラス化し、MasterPageをMasterModelに強く入力する必要があります。

public class MasterModel 
{ 
    string UserName { get; set; } 
} 

public class HomeModel : MasterModel 
{ 
} 

public class NewsModel : MasterModel 
{ 
} 

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MasterModel>" %> 

User name: <%= Model.UserName %> 
+1

+1私は痛みの量を想像することはできません。 – kemiller2002

+0

素晴らしい、人生をはるかに簡単にします。 –

0

あなたが車輪を再発明していない限り、いいアイデアです。多くの場合、ビューモデル(多くの場合、ASP.NETユーザーですが、人はルートデータをたくさん複製するように見える)に表示される情報は、モデルに追加することなくビューに表示されます。しかし、まだ見えていないものについては、それは問題ありません。

関連する問題