0

今天我需要提供一些东西,而且我真的陷入困境。用Umbraco MVC显示SQL表格

我的目标是从一把umbraco MVC表中显示的数据(我是新来的吧)

我需要创建一个控制器? 因为我所做的只是使用模板在Umbraco中创建一个Document类型。

这是我在我的模型:

public class RechargeModel 
{ 
    public string Name { get; set; } 
    public string Username { get; set; } 
    public string Email { get; set; } 
} 

这是我的模板:

@using Repower.Cms.Umbraco.Models; 
@using Umbraco.Core.Persistence; 
@{ 
using (var ipDb = new Database("UmbracoCMS")) 
    { 
     RechargeModel recharge; 

     recharge = ipDb.Fetch<RechargeModel>(new Sql().Select("TOP 100").From("umbracoUsers")); 
    } 
} 

我收到一个错误说,他不能类型列表转换为RechargeModel。

这是我的HTML,我希望把我的网页上,但我不知道我是否需要把它还在模板中或没有或把它放在哪里:

@model IEnumerable<Repower.Cms.Umbraco.Models.RechargeModel> 

<table class="table table-hover"> 
    <thead> 
     <tr> 
      <td>User Name</td> 
      <td>User Login</td> 
      <td>User Email</td> 
     </tr> 
    </thead> 
    <tbody> 
     @{ 
      foreach (var item in Model) 
      { 
       <tr> 
        <td>@item.Name</td> 
        <td>@item.Username</td> 
        <td>@item.Email</td> 
       </tr> 
      } 
     } 
    </tbody> 
</table> 

可能有人请帮助?那么其他的代码呢?

在此先感谢!

+0

你可以发布你的模型代码 - RechargeModel.cs想知道它包含哪些字段。 –

回答

1

您可以使用ApplicationContext.Current.DatabaseContext.Database访问当前数据库,而不是新建Database对象。

问题是,.Fetch()返回一个RechargeModel的列表(数组),因为您试图将此列表分配给单个RechargeModel。

要么使用:

var database = ApplicationContext.Current.DatabaseContext.Database; 

var recharges = database.Fetch<RechargeModel>(new Sql().Select("TOP 100").From("umbracoUsers")); 

或者改变你的变量,以便它接受一个列表:

var database = ApplicationContext.Current.DatabaseContext.Database; 

List<RechargeModel> recharges = null; 

recharges = database.Fetch<RechargeModel>(new Sql().Select("TOP 100").From("umbracoUsers")); 

无论哪种方式,你就可以遍历这个列表视图:

@foreach (var recharge in recharges) 
{ 
    <tr> 
     <td>@recharge.Name</td> 
     <td>@recharge.Username</td> 
     <td>@recharge.Email</td> 
    </tr> 
}