1

我在将我的应用程序带入 WebApi + Knockout 世界所需的模式方面遇到了一些问题。下面的场景已经抛出了一点。

我有一个非常基本的网格局部视图(_grid.cshtml)。它使用一个 GridViewModel,它只有一个 QueryID。Grid 部分使用 Ajax(在 ko ViewModel 中定义)将 QueryID 传递给 WebApi 方法,该方法返回 JSON 中的对象集合。然后我使用敲除根据返回的 JSON 绑定网格的列,然后加载行。

这一切都很好,但我不确定这是否是正确的方法。

    // When the query is changed update the grid data.
    self.selectedQueryID.subscribe(function (newQuery) {
        self.SelectQuery(newQuery.ID());
    });

    // Execute the query and set the results as the rows of the table
    self.SelectQuery = function (queryID) {
        $.ajax({
            url: '/api/Query/Execute?ID=' + queryID,
            type: 'POST',
            contenttype: 'application/json',
            success: function (result) {
                self.gridData(result);
            }
        });
    };

当我有另一个部分视图是用户可以选择的可用查询列表时,复杂性就来了。该局部视图与网格局部视图相邻。我希望能够以某种方式将单击的查询发送到网格,以便它可以发出另一个 ajax 请求以获取新查询的数据。我知道这是考虑 MVC 应用程序的完全错误的方式,但我对 WebApi 的了解还不够。

    @Html.Partial("~/Views/Shared/_Grid.cshtml", Model.GridViewModel)
    @Html.Partial("~/Views/Shared/_Queries.cshtml", Model.User)

这一切都是为了为网格实现某种默认查询,然后为用户提供选择其他查询的选项。

我也开始研究 Backbone 和 Knockback,但不知道(足够了解它们或)这是否是正确的方向。

4

0 回答 0