0

我有一个需要显示数据表的视图。就说人吧。

因此,在我的 web api 应用程序中,我创建了可以使用 razor 来显示这些人的视图:

@foreach(Person person in Model.People)
{
  <tr>
     <td>@person.FirstName</td>
     <td>@person.LastName</td>
  </tr>
}

我什至还没有使用 ApiController 类。

那么假设用户在搜索中输入了一些条件,并且 Model.People 列表需要更新。然后我会使用我的控制器(我认为)来更新我的 Model.People 列表。这是我需要的功能。

但我也可以使用 jQuery 来访问我宁静的 ApiController 类,并像这样动态更新我的人员表(尽管我认为我的语法不正确):

$.getJSON('api/people/updatepeople', function(data) {
    var fileTable = $("#personTable");
    $.each(data, function() {
       var row = $('$(this).Name$(this).FirstName', '$(this).Name$(this).LastName');
       $("#personTable").append( row );
    });
});

除了语法,我应该怎么做?剃刀还是 jQuery?在没有 ApiController 的情况下,将剃须刀与模型和控制器一起使用会更好或更有效吗?或者将 jQuery 与 ApiController 一起使用?看起来这些技术是齐头并进的,razor 和控制器,jQuery 和 ApiController。我觉得我不应该将它们混合在一起,比如将 jQuery 与剃须刀和模型一起使用......?

希望了解什么是更正确的方法(如果有的话)以及为什么。

4

1 回答 1

1

这完全取决于你的场景和你想要完成的事情。如果您想要部分页面更新而没有回发,那么请继续使用异步 XmlHttpRequests 来更新您的页面。否则,您可以在页面回发之间的页面上显示加载的模型。

混合技术很好,这就是我为当前项目采取的方法。例如,我加载初始页面并根据需要显示模型,然后对于页面上的小更新,我执行 Javascript GET/POST。

顺便说一句,您可以使用 razor 生成异步表单/操作链接,所以这不是 Razor 或 JQuery 的问题,它是异步更新版本同步回发的比较。

于 2013-03-13T04:42:02.330 回答