Razor C# - 从数据库中获取数据

时间:2013-02-07 05:58:01

标签: c# asp.net sql-server razor webmatrix

我正在使用WebMatrix,我创建了一个数据库并放置了一个包含几行数据的表。我可以连接到它并使用WebGrid获取数据,但它只提供了一种使用表格输出数据的方法。

以下是'shows.cshtml'的代码:

@{
    var db = Database.Open("TVPort");
    var shows_data = db.Query("SELECT * FROM shows");
    var shows_grid = new WebGrid(source: shows_data);
}

我希望能够做的是枚举查询返回的每一行,并使用每列的值执行任何操作。但是WebGrid只允许您在表格中输出数据。我今天刚开始使用WebMatrix和Razor语法。

另外(在这里提出问题,并不认为它足以成为自己的问题),有没有办法为我的'shows.cshtml'页面制作一个C#代码文件?在Visual Web Developer 2010中,每个页面都有一个'page.aspx'文件和一个'page.aspx.cs',其中'page.aspx.cs'文件允许您在页面中使用自定义函数,或执行任务页面加载时在WebMatrix中使用CSHTML是否有类似的行为?或者是所有代码都应该与实际页面内联?

4 个答案:

答案 0 :(得分:6)

Working With Data : ASP.net

找到答案
@foreach(var row in db.Query("SELECT * FROM shows")) {
  <em>@row.title</em> - Cast: @row.cast
}

答案 1 :(得分:0)

你正以错误的方式解决这个问题! MVC模式在将数据逻辑与实际内容分离方面具有优势,现在您正在View中检索新数据(这对控制器没有太多控制权)!

查看http://www.asp.net/mvc有关如何使用ASP.Net MVC以及如何构建类和文件的一些很棒的教程(它将回答您的问题)。如果您之前使用PHP并直接在同一页面中编写每个查询,可能看起来有点过头了,但请相信我,您创建的代码将更清晰,并且使用ASP.Net MVC更容易维护。

答案 2 :(得分:0)

参考你的附带问题,我会说使用Razor框架你不能拥有代码隐藏文件。它将服务器端代码和客户端代码混合在一起。如果你想拥有一个代码隐藏文件,那么你就可以在Visual Studio上使用没有剃刀视图引擎的Asp.net网页。

答案 3 :(得分:0)

对于附带问题,我相信@function {“在此块中插入代码”}将允许您在页面内创建自定义函数。希望这可以帮助其他可能有类似问题并最终在这里的人。信不信由你有一些关于如何开始@ http://www.asp.net/get-started的优秀文档。只需阅读教程。