Razor WebPage:如何将数据库中的数据分别提供给多个页面?

时间:2016-10-12 12:37:59

标签: razor webmatrix asp.net-webpages

我的问题与this one非常相似。

我从两个页面的数据库中获取相同的数据(对象的属性,每行代表一个对象),一个页面用于编辑数据,一个页面用于查看它。为了减少冗余代码并改进维护,我想编写一段只加载一次数据的代码。

我的想法是使用_PageStart.cshtml。但是,我只能在PageData数组中存储字符串,但不能存储对象。

那么在几个页面上提供数据库中的行的最佳方法是什么?

以下是我从数据库获取数据的方法:

var db = Database.Open("mydb");
String query = "select * from motors";
var rows = db.Query(query);

System.Data.DataTable motors = new System.Data.DataTable();
motors.Columns.Add("posX", typeof(int));
motors.Columns.Add("posY", typeof(int));

IEnumerator<dynamic> en = rows.GetEnumerator();
while (en.MoveNext()) {
    motors.Rows.Add(en.Current.posX, en.Current.posY);
}

我想在不同的网页上访问DataTable motors

1 个答案:

答案 0 :(得分:1)

您所要做的就是创建一个只包含您的代码的页面,然后在您想要显示的任何页面上使用:

@RenderPage("~/yourpage.cshtml");