MVC Action或Razor-谁负责对列表进行排序



我有一个类型为MyObject的List,MyObject的一个属性是Order。

当我在视图中输出对象数据时,它用于设置优先级。

例如

@foreach(var item in Model.GroupOfMyObjects)
{
    @* // output some HTML *@
}

我的问题是……这个列表的排序(按顺序)应该在Action中完成(当构建要发送到View的ViewModel时),还是应该在View中完成(Razor代码)?

视图只是按照我的理解来处理演示文稿,所以这意味着Action不会进行排序(因为这是演示文稿)。但这对我来说并不舒服,因为我觉得我将在View和后面(我构建ViewModel的地方)为UI提供一些逻辑。

谁负责整理这份清单?

编辑:我想避免团队中的一些人在视图中做这样的操作,而一些人在行动中做。这将是一个令人头疼的问题,所以我问。

编辑:顺序可以更改。用户可以在页面上创建一个新的MyObject,用AJAX发布数据,然后我们调用后端(用AJAX)重新获取组,并输出它。

啊。。。如果我们说View(Razor代码)必须进行排序,那么现在我们必须有一些额外的JavaScript代码来对返回的数据进行排序(因为Razor只在页面加载时运行)。现在我们在两个地方对代码进行排序。

我认为您应该在控制器中专门对数据做同样多的工作。只有在特殊情况下,才应该操作视图中的数据。

如果你需要特定的数据自定义通行证,你可以拥有自己的花式视图模型。

关注点的分离听起来像是你的关注点。

最新更新