0

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

@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 循环之外还有一个下拉列表,我想在其中使用价格进行排序。
我可以通过将模型传递给控制器​​来完成此操作,但此处页面会完全刷新,这是我不希望发生的事情。反过来,我希望只对模型进行动态排序,例如使用 javascript 来优化模型中具有列表的项目。任何帮助,将不胜感激。

4

1 回答 1

1

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

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

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

然后,您将需要在客户端有一些代码来查看该模型并重新排序以响应您的客户端交互。 Angular.jsBackbone.js是很好的竞争者,但还有很多其他的

或者你可以使用 jQuery

于 2013-11-27T09:56:09.127 回答