From: Roger Frost on
Greetings,

I'm coming from a WinForms background and diving into ASP.Net. I'm using:

C#, VS2010, .Net 4.0, ASP.Net, MVC 2.

What I want to do is get a string[] of roles in the controller with:

string[] currentUsersRoles = Roles.GetRolesForUser(User.Identity.Name);

Then I want to attach this to the ViewData object (also in the controller):

ViewData["CurrentUsersRoles"] = currentUsersRoles;

Now, in the View I want to bind a Repeater to the array I fed to ViewData.
Something
like:

<asp:Repeater ID="CurrentUsersRoles" runat="server" DataSourceID="[WHAT GOES
HERE?]">
<HeaderTemplate>
<b>Account Roles:</b>
<br />
</HeaderTemplate>
<ItemTemplate>
<%# [WHAT GOES HERE?] %>
<br />
</ItemTemplate>
</asp:Repeater>

I want to do this without code behind (which I can already do with my
limited knowledge)
because using code behind defeats the purpose of using MVC in the first
place, but that's
just me. Anyhow, this should be easy right? The Repeater exists for the
sole purpose of
displaying collections efficiently, yes? So is there a collection any
simpler or more fundamental
than an array? I suspect some casting will be needed from object back to
string[], but I don't know
where to begin, all I have now is a hammer and they all look like nails to
me.

I've been googling this for hours, but the posts I've seen all want to use
code behind to
acomplish this except this one:

http://forums.asp.net/t/1257598.aspx

I believe she is on the right track...at least it looks good to me, but
being the newbie that I am, I'm
stuck on the line:

<ext:ViewDataSource ID="MyViewDataSource" runat="server"
ViewDataKey="Computers" />

Because evidently "ext" doesn't mean anything in asp.net.

But, back to my point about simple-array-binding-repeater-thingamajigs, this
approach
seems like overkill for such a trivial task anyhow.

Can someone please enlighten me? All productive answers will be extremely
appreciated!

Thanks,
Roger

From: Roger Frost on
Hello,

Just a quick update here, I may have stumbled upon
something that will lead me in the right direction.

I'm going to attempt to use ExpressionBuilder(s) as
described in:

http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx

....I will post back with the results as soon as I have
time to try it. I don't fully understand it yet, or
even what it's capable of, but it's something.

In the mean time, I'm still interested in any idea's
regarding the OP (below).

Thanks,
Roger





"Roger Frost" <frostrl(a)hotmail.com> wrote in message
news:F5CCBB56-05D1-4ACF-8D4E-67F1D95601DD(a)microsoft.com...
> Greetings,
>
> I'm coming from a WinForms background and diving into ASP.Net. I'm using:
>
> C#, VS2010, .Net 4.0, ASP.Net, MVC 2.
>
> What I want to do is get a string[] of roles in the controller with:
>
> string[] currentUsersRoles =
> Roles.GetRolesForUser(User.Identity.Name);
>
> Then I want to attach this to the ViewData object (also in the
> controller):
>
> ViewData["CurrentUsersRoles"] = currentUsersRoles;
>
> Now, in the View I want to bind a Repeater to the array I fed to ViewData.
> Something
> like:
>
> <asp:Repeater ID="CurrentUsersRoles" runat="server" DataSourceID="[WHAT
> GOES HERE?]">
> <HeaderTemplate>
> <b>Account Roles:</b>
> <br />
> </HeaderTemplate>
> <ItemTemplate>
> <%# [WHAT GOES HERE?] %>
> <br />
> </ItemTemplate>
> </asp:Repeater>
>
> I want to do this without code behind (which I can already do with my
> limited knowledge)
> because using code behind defeats the purpose of using MVC in the first
> place, but that's
> just me. Anyhow, this should be easy right? The Repeater exists for the
> sole purpose of
> displaying collections efficiently, yes? So is there a collection any
> simpler or more fundamental
> than an array? I suspect some casting will be needed from object back to
> string[], but I don't know
> where to begin, all I have now is a hammer and they all look like nails to
> me.
>
> I've been googling this for hours, but the posts I've seen all want to use
> code behind to
> acomplish this except this one:
>
> http://forums.asp.net/t/1257598.aspx
>
> I believe she is on the right track...at least it looks good to me, but
> being the newbie that I am, I'm
> stuck on the line:
>
> <ext:ViewDataSource ID="MyViewDataSource" runat="server"
> ViewDataKey="Computers" />
>
> Because evidently "ext" doesn't mean anything in asp.net.
>
> But, back to my point about simple-array-binding-repeater-thingamajigs,
> this approach
> seems like overkill for such a trivial task anyhow.
>
> Can someone please enlighten me? All productive answers will be extremely
> appreciated!
>
> Thanks,
> Roger