获取Nopcommerce 2.8中的所有角色

时间:2013-08-31 23:42:08

标签: nopcommerce

我正在尝试在NOPCOMMERCE中获取用户分配的所有角色。我知道如何确定用户是否处于特定角色,但我无法在列表或列表框中获取所有角色。

如果我使用以下代码:

Imports Nop.Core.Infrastructure
Imports Nop.Services.Helpers
Imports Nop.Core.Domain.Customers
Imports Nop.Services.Customers
Imports Nop.Core

ListBox1.DataSource = EngineContext.Current.Resolve(Of IWorkContext)().CurrentCustomer.CustomerRoles()
ListBox1.DataBind()

'this is the listbox on aspx page
<asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>

我在列表框中看到了这个:

System.Data.Entity.DynamicProxies.CustomerRole_6E0DFC682B2D3247B3BEEED3063345A95D5742CE33B2761C4CB20A8C0A0AD639
System.Data.Entity.DynamicProxies.CustomerRole_6E0DFC682B2D3247B3BEEED3063345A95D5742CE33B2761C4CB20A8C0A0AD639
System.Data.Entity.DynamicProxies.CustomerRole_6E0DFC682B2D3247B3BEEED3063345A95D5742CE33B2761C4CB20A8C0A0AD639
System.Data.Entity.DynamicProxies.CustomerRole_6E0DFC682B2D3247B3BEEED3063345A95D5742CE33B2761C4CB20A8C0A0AD639

其中显示了4个角色,但它们看起来不像我的角色。我需要实际的角色名称。有谁知道如何获得用户拥有的所有角色?感谢。

1 个答案:

答案 0 :(得分:0)

您需要在列表框中指定DataTextField和DataValueField以告诉列表框CustomerRole将显示哪些字段。

ListBox1.DataSource = EngineContext.Current.Resolve(Of IWorkContext)().CurrentCustomer.CustomerRoles()

//add this
ListBox1.DataTextField  = "SystemName"; //you can use "Name" instead of "SystemName" or whatever property name of CustomerRole class
ListBox1.DataValueField = "Id";

ListBox1.DataBind()