C# MVC-视图更改在模型中排序的数据的显示
我正在开发一个MVC应用程序,它在网格中显示排序后的数据。它非常简单,模型获取数据,视图显示输出。但是,视图可以对输出进行格式化,使底层数据看起来未排序 例如,模型运行此查询,其输出正确排序:C# MVC-视图更改在模型中排序的数据的显示,c#,asp.net-mvc,asp.net-mvc-4,sorting,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Sorting,Razor,我正在开发一个MVC应用程序,它在网格中显示排序后的数据。它非常简单,模型获取数据,视图显示输出。但是,视图可以对输出进行格式化,使底层数据看起来未排序 例如,模型运行此查询,其输出正确排序: Select ClassName, IsActiveClassAssignment from classtable order by ClassName 但是,视图可以根据viewmodel中其他字段的值更改类名的显示。例如:下面是视图cshtml的一个片段 <span data-bind="if
Select ClassName, IsActiveClassAssignment from classtable order by ClassName
但是,视图可以根据viewmodel中其他字段的值更改类名的显示。例如:下面是视图cshtml的一个片段
<span data-bind="if:ClassName==null"> </span><span data-bind="text: ClassName, visible:IsActiveClassAssignment" />
但这似乎不对。应用程序中到处都有这样的cshtml代码片段,将这种类型的“显示”逻辑推到模型中似乎是不对的。。。还是这样
如何在MVC应用程序中最好地解决这个问题?您是使用js在本地对当前模型进行排序,还是再次调用控制器以得到不同的模型?类名可以有重复的值,比如cl-val,因此即使文本为空,也可以从cl-val属性中获取,因此不需要时不时地执行case操作。应用程序通过对控制器的ajax调用重新加载模型,控制器根据用户指定的排序标准返回新的排序模型。虽然你的建议有效,虽然这个示例很简单,但实际的显示操作非常复杂,我选择在上面的示例中不显示实际的复杂性,正如我前面提到的,将这种类型的逻辑下推到模式/数据访问层是不对的。。。。还是MVC规定它应该这样做?
select, CASE WHEN IsActiveClassAssignment = 1 THEN '' ELSE ClassName END as ClassName,IsActiveClassAssignment order by ClassName