【问题标题】:Display query results efficiently in Razor在 Razor 中高效显示查询结果
【发布时间】:2013-05-11 16:42:19
【问题描述】:

我使用 Visual C# 和“Razor”选项创建了一个 ASP.NET MVC 4 Web 应用程序

HomeController.cs

    public ActionResult Tasks()
    {
        ViewBag.Message = "Tasks";

        string selectSql = "select * from Tasks";

        string connectionString = @"Data Source=lpc193\adamssqlserver;Database=master;Integrated Security=True;";

        DateTime strt;

        using (var cn = new SqlConnection(connectionString))
        using (var cmd = new SqlCommand(selectSql, cn))
        {
            cn.Open();

            using (var reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    strt = reader.GetDateTime(reader.GetOrdinal("Start"));
                }
            }
        }

        return View();
    }

Tasks.cshtml

@{ 
    ViewBag.Title = "Tasks To Complete"; 
}

These are the tasks from the table

<!-- some datagrid object here ?? -->

我有以下 SQL Server 2012 数据库表布局

我可以很好地查询表格并单独提取每个字段的值。

我想要做的是在一个 DataGridView 中向用户显示结果集(包括 select * 查询中的所有字段)。我可以轻松地将每个值放入 TR TD 并将其放入字符串中,将其显示在 .cshtml 端...但这并没有真正教会我任何东西,我怀疑它是否非常有效。

旁注很难找到有关 Razor 的相关信息并显示来自查询的数据。是因为它是新的,和/或 Razor 是 C# 新手要避免的东西吗?

【问题讨论】:

  • 通过在 Razor 视图引擎中迭代模型项,将数据传递给模型并在客户端动态构建网格。将所需的值提取到适当的单元格中,仅此而已。请记住只将您真正想要使用的数据传递给客户端。不要因冗余信息而使网络过载,这会减慢您的页面呈现速度。充其量,不要在您的服务器端使用select * 从数据库中检索数据 - 应用一些限制来缩小要获取的数据。

标签: c# asp.net razor datagrid


【解决方案1】:

这不是 razor 视图引擎的错,而是整个 ASP.Net MVC 的缺点。

与 Webforms 不同,ASP.Net MVC 不提供自动转换为 HTML 的服务器端控件。所以基本上你将不得不手工构建所有的 HTML

当然,有一些称为 HTML 助手 的内置类可以帮助您处理常见的 HTML 内容(请参阅http://msdn.microsoft.com/en-us/library/dd493063(v=vs.108).aspx)。

但遗憾的是,没有内置的帮助程序可以为网格生成 HTLM。

您可以构建自己的(是的,手动编写将完成所有td/tr 工作的帮助程序类...)或使用现有解决方案。 例如:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2021-09-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多