我正在开发一个MVC应用程序,它在网格中显示已排序的数据。这很简单,模型获取数据,视图显示输出。但是,视图可以使输出格式化,使基础数据看起来未排序
例如,模型运行此查询并且其输出已正确排序:
Select ClassName, IsActiveClassAssignment from classtable order by ClassName
但是,视图可以根据viewmodel中其他字段的值更改ClassName的显示。例如:以下是视图cshtml的片段。
<span data-bind="if:ClassName==null"> </span><span data-bind="text: ClassName, visible:IsActiveClassAssignment" />
这导致在排序的输出中显示看似空白的类名。
解决此问题的一种简单方法是将上面显示的cshtml逻辑推送到数据访问/模型层。例如
select, CASE WHEN IsActiveClassAssignment = 1 THEN '' ELSE ClassName END as ClassName,IsActiveClassAssignment order by ClassName
但这似乎不对。整个应用程序都有这样的cshtml代码片段,并且将这种“显示”逻辑推入模型似乎不正确......或者是它?
如何在MVC应用程序中最好地解决这个问题?