1

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 つの役割を示していますが、私には役割のようには見えません。実際のロール名が必要です。ユーザーが持っているすべてのロールを取得する方法を知っている人はいますか? ありがとう。

4

1 に答える 1

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()
于 2013-09-04T09:53:34.410 に答える