2

我的 MVC 4 站点使用 jQuery Ajax 来更新站点的部分内容,并且我的站点主要用于修改底层 SQL 数据库中的信息。我的问题是,即使在本地运行服务器,服务器也不会随机返回 PartialView。

我在 Windows 8 上使用 Visual Studio 2012,并在 Azure 平台上运行服务器。

我应该改写关于服务器不返回它的部分,因为在 19 秒后,客户端重试获取数据,它通常会成功,但它会返回两次(仅呈现一次),并且每次返回都包含相同的数据(如它应该)。尽管该站点仍然有效,但 19 秒的延迟是问题所在。

  • /Trace.axd 没有显示任何问题,除了 19 秒的等待和状态码 200。
  • 数据库连接运行良好,服务器到达代码末尾,将 PartialView 返回给渲染器。
  • 尝试通过浏览器中的链接直接调用 PartialView 也会出现同样的问题。
  • 它平均每 20 次调用发生一次(至少在我在本地测试时)。
  • Chrome 开发者工具显示它获取了 13 个字节的数据(我假设是标头),然后等待 19 秒,最后两次接收到完整数据。

我的想法是,要么我的配置存在潜在问题,要么返回 PartialViews,尽管大多数情况下该站点运行良好。

如果我能对调试此错误的下一步行动有所了解,或者对问题提出一个好的理论,那就太好了。

最亲切的问候

迈克尔 (D3vinno)

来自控制器的示例代码

public ActionResult _List_Product() {
  Database db = new Database(Session["database"] as string);
  db.Connect();
  DataTable dataTable = null;
  using (SqlCommand command = db.GetSqlConnection().CreateCommand()) {
    command.CommandText = string.Format("SELECT [product].[id], [product].[title] FROM [product]");
    SqlDataReader sdr = command.ExecuteReader();

    dataTable = new DataTable { TableName = "product" };
    if (sdr != null) {
      dataTable.Load(sdr);
    }
  }
  db.Close();
  return PartialView(dataTable);
  }

和示例视图

@model System.Data.DataTable
@{
    string type = "_Product";
}

<p>
    <button class="btn span8" onclick="SetContent('@type', 'new')">New</button>
</p>

<table class="table row-fluid table-condensed" data-provides="rowlink">

@foreach (System.Data.DataRow item in Model.Rows) {
    <tr id="show-@item["id"]">
        <td id="search-@item["id"]">
            <b> @item["title"] </b>
        </td>
        <td>
            <button class="btn pull-right" onclick="SetContent('@type',@item["id"])">Edit</button>
        </td>
    </tr>
}

</table>
4

1 回答 1

0

部分视图看起来没有任何问题。如果您对此有疑问,请发送一些静态数据而不是访问数据库。

最好的选择是选择查询中的前 3 行并查找输出。

我想它会给解决方案一些方向!

于 2013-07-10T18:08:17.570 回答