在不涉及控制器的情况下对MVC视图列表中的项进行排序

Sorting items in a list of MVC view without involvement of controller

本文关键字:列表 排序 视图 控制器 情况下 MVC      更新时间:2023-11-25

根据我的理解,我发现我们也可以从视图中进行编码。因此,我有一个使用foreach循环在View中填充的列表。

@foreach (var item in Model)
{
@Html.Raw(item.Name)<br />
@Html.Raw(item.Price)<br />
@Html.Raw(item.Description)<br />
@Html.Raw(item.Image)
<hr />
}

我还有一个foreach循环外的下拉列表,我想在那里使用价格进行排序
我可以通过将模型传递给控制器来完成此操作,但在这里页面会完全刷新,这是我不希望发生的事情。Inturn我只想对模型进行动态排序,比如说使用javascript来细化模型中有列表的项目。如有任何帮助,我们将不胜感激。

我认为你正在尝试的是无法完成的事情。

我认为您正在尝试使用Razor语法刷新页面以重新排序列表,而无需对服务器进行页面刷新或HTTP调用。这是不可能的,因为ASP.NET MVC世界中的视图是cshtml定义,每个调用将执行一次。您需要在客户端运行一些东西来刷新页面(即JavaScript)。

一个好主意是将模型的内容输出为Json(可以在标准MVC控制器(没有关联视图)中使用MVC控制器Json函数返回JsonResult)。您还可以使用WebApi控制器,该控制器可以本地生成Json。

然后,您需要在客户端有一些代码来查看该模型,并根据客户端交互对其进行重新排序。Angular.js和Backbone.js是很好的竞争者,但还有很多其他的。

或者您可以使用jQuery。