2009-04-20 6 views
0

私は以前のバージョンのAsp.Net MVCで構築されたWebアプリをリファクタリングしています。すべてのビューに2つのコードビハインドファイルがあります。部分的なページプロパティをビューに戻すコードなし

また、ビューが正常に機能している場合は、ほとんどのコードが空のため、すべてのコードビハインドファイルを削除したいと考えています。

分離コードでこのような性質を持っているそれらのいくつかがあります。

public partial class List { 
    public Message NewMessage { get { return new Message(); } } 
} 

それらを完全に削除する前に(私は、このメソッドは、ビューに関係していない知っている)私は、単一のページでそれらを複製しない方法aspxまたはascx?
パブリックメソッドをコピーして< %%>タグに貼り付けようとしましたが、これは機能しません。

答えて

3

なぜこのアプローチを最初に使用していたのですか? Viewを強く型付けして、同じメッセージをViewModelとして渡すことで、同じことを達成できると思います。

Inherits="System.Web.Mvc.View<Message>" 

すでに強くViewを入力した場合、あなたはあなたのメッセージのための部屋を持っているあなたのクラスライブラリにカスタムクラスを作ることができ、例えば、

public class ModelWithMessage { 
    public Message Message { get; set; } 
    public Object Model { get; set; } 
    public ModelWithMessage(Message Message, Object Model) { 
     this.Message = Message; 
     this.Model = Model; 
    } 
} 

のためにあなたはもちろん、そのタイプは一般的なことができますまた、ModelWithMessage<T>構成を許可し、Modelを必要なタイプにキャストする必要はありません。

もう1つの方法はTempDataです。お使いのコントローラでは、その後、あなたにViewあなたは単にあなたが選択したアプローチ

<%= TempData["Message"] %> 

とメッセージを書き出す

TempData["Message"] = "Hello world!"; 

を設定すると、あなたのメッセージクラスが含まれているかに依存します。あなたは:)

まず私は、コントローラクラスに出て、これらのメソッドを移動し、必要なデータを渡す「私は、このメソッドは、ビューに関係していない知っている」と述べたよう

0

あなたはほとんどそこに自分自身のためにこれに答えましたモデル内の適切な場所であると仮定して、コードビハインドファイルからすべての機能を削除し、再度完全に分離すると、ビューからコードビハインドファイルを削除することができます。

関連する問題