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> 
}