asp.net mvc3 C# アプリケーションがあります。データベースを使用しています。データベースは、要件により論理的な削除シナリオをサポートしています。論理的な削除のシナリオはカスケードしません。削除済みのフラグが付けられたレコードはグレー表示されます。私の問題は、モデルの各ディスプレイを常にいくつかの html マークアップとスタイルで囲む必要なく、これを行う方法にあります。
例えば:
<span @if(m.Box.isDeleted){
<text>style="background-color:gray"</text>
}>@m.Box.Name @m.Box.Description</span>
私はそれを行うことができますが、文字通りすべての ViewModel オブジェクトの表示に対して行う必要がある余分なマークアップをすべて見てください。
私がやりたいのは @m.Box.Name.AddMarkup() とか、その程度のものです。おそらく、アイテムを受け取り、次のような正しいマークアップを返すヘルパーを作成できます。
namespace place.Markup
public class Markup
{
public ModelItem(object o, property name)
{
//perhaps use reflection so the flag isnt passed all the time
//create markup with flag conditional decoration
//return markup
}
}
その後
@Markup.ModelItem(@m.Box.Description)
これにどのようにアプローチすべきか、または提案された方法のいずれかが他の人がこの問題にアプローチした方法であるかどうかはわかりません。ソフト削除されたアイテムを表示するために何を試みましたか? これに関する適切なチュートリアルはどこかにありますか? このテーマに関する資料はあまり見つかりませんでした。
注意: これらのオブジェクトのフィルタリングは問題ではありません。これらは意図的に表示されており、論理的な削除を反映する方法で表示する必要があります。