我有一个 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)
我不知道我应该如何处理这个问题,或者如果任何一种建议的方式是其他人处理这个问题的方式。您尝试过什么来显示软删除的项目?在某个地方有一个很好的教程吗?我真的找不到很多关于这个主题的材料。
请注意:过滤这些对象不是问题,它们是有意显示的,并且需要以反映软删除的方式显示。