如何使用javascript变量在cshtml中过滤模型

时间:2014-01-22 17:57:13

标签: javascript asp.net-mvc razor

我有一个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));
    }

1 个答案:

答案 0 :(得分:1)

您无法使用JavaScript过滤以这种方式传递给View的模型数据。在将模型数据发送到客户端之前,模型数据将绑定到服务器上的视图。这意味着你不能在上面发布的JavaScript函数中使用LINQ,因为服务器已经完成了文件并将其发送到客户端。绑定模型数据后,整个视图将发送到处理JavaScript的客户端。

还有其他选项,例如部分页面呈现(进行AJAX调用以将过滤后的数据返回给服务器),或者您可以查看一些jQuery插件来过滤表格内的数据,例如http://jquery-plugins.net/jquery-filter-table-plugin。这实际上取决于你的用例。

相关问题