From: Cubaman on
On May 23, 10:56 am, "Roger Frost" <fros...(a)hotmail.com> wrote:
> 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

Hello Roger.
There is no runat="server" in MVC Views. You don't use aspnet common
controls with MVC, so forget about Repeaters, DataGrids, etc.
Take a deeper look at some MVC tutorials, specially a foreach loop in
a view, in order to get something like a repeater effect.
http://blogs.msdn.com/b/brada/archive/2008/01/29/asp-net-mvc-example-application-over-northwind-with-the-entity-framework.aspx?PageIndex=1

Best regards

Oscar Acosta
From: Roger Frost on
Oscar,

Thanks for replying.

While I can guarantee to a complete certainty that the
following is valid in an MVC 2 View aspx page...

<asp:Label ID="mylabel" Text="Some Text" runat="server">
</asp:Label>

....I will not deny that you are correct in that maybe I should
not use common asp.net controls in my MVC 2 application
in the first place. The further along I get the more headaches
arrise. With my WinForms/Database background, coding the
output manually will probably feel more comfortable anyway.
To heck with markup and server tags! :) (...to a point at least)

Thanks for making me think outside of the box, I'll
put my hammer away now.

-Roger




"Cubaman" <oscar.acostamontesde(a)googlemail.com> wrote in message
news:12a29f00-f27a-493e-b11d-e4bdf288d306(a)y11g2000yqm.googlegroups.com...
> On May 23, 10:56 am, "Roger Frost" <fros...(a)hotmail.com> wrote:
>> 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
>
> Hello Roger.
> There is no runat="server" in MVC Views. You don't use aspnet common
> controls with MVC, so forget about Repeaters, DataGrids, etc.
> Take a deeper look at some MVC tutorials, specially a foreach loop in
> a view, in order to get something like a repeater effect.
> http://blogs.msdn.com/b/brada/archive/2008/01/29/asp-net-mvc-example-application-over-northwind-with-the-entity-framework.aspx?PageIndex=1
>
> Best regards
>
> Oscar Acosta

From: Cubaman on
On Jun 8, 11:37 am, "Roger Frost" <fros...(a)hotmail.com> wrote:
> Oscar,
>
> Thanks for replying.
>
> While I can guarantee to a complete certainty that the
> following is valid in an MVC 2 View aspx page...
>
> <asp:Label ID="mylabel" Text="Some Text" runat="server">
> </asp:Label>
>
> ...I will not deny that you are correct in that maybe I should
> not use common asp.net controls in my MVC 2 application
> in the first place.  The further along I get the more headaches
> arrise.  With my WinForms/Database background, coding the
> output manually will probably feel more comfortable anyway.
> To heck with markup and server tags! :)  (...to a point at least)
>
> Thanks for making me think outside of the box, I'll
> put my hammer away now.
>
> -Roger
>
> "Cubaman" <oscar.acostamonte...(a)googlemail.com> wrote in message
>
> news:12a29f00-f27a-493e-b11d-e4bdf288d306(a)y11g2000yqm.googlegroups.com...
>
> > On May 23, 10:56 am, "Roger Frost" <fros...(a)hotmail.com> wrote:
> >> 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
>
> > Hello Roger.
> > There is no runat="server" in MVC Views. You don't use aspnet common
> > controls with MVC, so forget about Repeaters, DataGrids, etc.
> > Take a deeper look at some MVC tutorials, specially a foreach loop in
> > a view, in order to get something like a repeater effect.
> >http://blogs.msdn.com/b/brada/archive/2008/01/29/asp-net-mvc-example-...
>
> > Best regards
>
> > Oscar Acosta

Hello Roger:
Here you'll find a good tutorial to get started with mvc. Just try to
don't thing in classic asp.net terms and you'll get it.
http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx

Best regards.