Razor 如何通过web矩阵中的id返回单个项目?
如何使用Web Matrix查询数据库,通过从另一个页面传入ID来获取单个项目 注意:我的很多UI都使用了部分页面,这些只是webmatrix中的页面,使用:@RenderPage/page_name.cshtml 我试着用两张表格和两页纸组成一个表格。具有关联ServiceFeatures表的服务表。它通过将serviceID分配给servicefeatures表(即Services表的serviceID)来获取关系 因此,我有两个页面来呈现一个_ServiceList.cshtml,它具有以下内容:Razor 如何通过web矩阵中的id返回单个项目?,razor,sql-server-ce,webmatrix,Razor,Sql Server Ce,Webmatrix,如何使用Web Matrix查询数据库,通过从另一个页面传入ID来获取单个项目 注意:我的很多UI都使用了部分页面,这些只是webmatrix中的页面,使用:@RenderPage/page_name.cshtml 我试着用两张表格和两页纸组成一个表格。具有关联ServiceFeatures表的服务表。它通过将serviceID分配给servicefeatures表(即Services表的serviceID)来获取关系 因此,我有两个页面来呈现一个_ServiceList.cshtml,它具有以
@{
var db = Database.Open("winmodb");
var servicesSql = "SELECT * FROM Services WHERE Featured = 'true'";
var services = db.Query(servicesSql);
}
在_servicefeact.cshtml的内部,我有以下内容
@{
var db = Database.Open("database");
var serviceFeatureSql = "SELECT * FROM ServiceFeatures WHERE ServiceId = @0";
var serviceFeature = db.QuerySingle(serviceFeatureSql, serviceId);
}
<li>@serviceFeature.Name</li>
但它不起作用,我不确定是否必须传递变量。
我知道serviceId在当前上下文中不存在,这就是我遇到的问题。参数在PageData非动态或页面动态属性中传递:
@RenderPage("~/shared/_ServiceFeature.cshtml", new { serviceId });
在部分页面中,您可以编写
db.QuerySingle(serviceFeatureSql, Page.serviceId);
为了按名称访问参数,您需要以匿名类型传递参数。在\u ServiceList页面中,您的RenderPage调用应该如下所示:
@RenderPage("~/shared/_ServiceFeature.cshtml", service.serviceId)
在_ServiceFeature中,您可以使用页面[0]获取serviceId的值:
db.QuerySingle(serviceFeatureSql, Page[0]);
我想你需要一个带有页面数据的字符串索引器。动态属性与速记“页面”版本配合使用。在调用中不需要@。是的,它需要;它误导了人们对"的使用,这已经够让人迷惑的了。
db.QuerySingle(serviceFeatureSql, Page[0]);