我有一个javascript函数,它将计算并返回一个状态,然后我想用它来过滤我的模型。但它似乎不允许我在cshtml文件中这样做。
var status = GetStatus();
if (status != 'All')
{
data = @Html.Raw(Json.Encode(Model.Where(p => p.ConfirmedStatus == status)));
}
else
{
data = @Html.Raw(Json.Encode(Model));
}
答案 0 :(得分:1)
您无法使用JavaScript过滤以这种方式传递给View的模型数据。在将模型数据发送到客户端之前,模型数据将绑定到服务器上的视图。这意味着你不能在上面发布的JavaScript函数中使用LINQ,因为服务器已经完成了文件并将其发送到客户端。绑定模型数据后,整个视图将发送到处理JavaScript的客户端。
还有其他选项,例如部分页面呈现(进行AJAX调用以将过滤后的数据返回给服务器),或者您可以查看一些jQuery插件来过滤表格内的数据,例如http://jquery-plugins.net/jquery-filter-table-plugin。这实际上取决于你的用例。