none
Code-behinds dos aspx no asp.net MVC? RRS feed

  • Pergunta

  • Caros estou seguindo um tutorial, porém notei que a versão que tutorial usava do asp.net mvc, não erá  aversão final. E estou com um problema.

    No tutorial, o Macoratti faz com que a propriedade ViewData ficasse fortimente tipada para na hora dele fazer um foreach no aspx, não ter erro de tipos de dados, porém estou inserindo varios tipos (templates) de aspx e nenhum vem com o code-behind. Estou fazendo alguma caca, ou essa versão final do Asp.net MVC mudou algo referente a code-behinds? Se mudou me dêem um colaboração, para eu finalizar esse tutorial!


    Link do tutorial: http://www.macoratti.net/08/07/asp_mvc4.htm

    Att,
    Alcides Ferreira de Melo
    sábado, 11 de julho de 2009 05:01

Respostas

  • Olá Alcides,

    Você deve tivar a sua View direto na pagina ASPX no atributo Inherits da diretiva @Page, por exemplo

    <%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of MvcApplication2.Produto))" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	Index
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    
        <h2>Index</h2>
        <table>
            <tr>
                
                <th>
                    Valor
                </th>
                <th>
                    Nome
                </th>
                <th>
                    ProdutoId
                </th>
            </tr>
    
        <% For Each item In Model%>
        
            <tr>
                <td>
                    <%= Html.Encode(item.Valor) %>
                </td>
                <td>
                    <%= Html.Encode(item.Nome) %>
                </td>
                <td>
                    <%= Html.Encode(item.ProdutoId) %>
                </td>
            </tr>
        
        <% Next%>
        </table>
    
    </asp:Content>
    
    

    No exemplo acima tenho uma classe produto no meu model é tipo a minha View com essa classe é faço o foreach normalmente sem precisa de cast. No controller tudo fica da mesma forma!



    Se a resposta for útil por favor não esqueça de marca.
    Abraços,
    www.danielfonsecacastro.com.br
    Daniel Fonseca Castro
    segunda-feira, 13 de julho de 2009 13:22

Todas as Respostas

  • Olá,

    veja se os links ajudam

    Strongly Typed ViewData Without a Codebehind
    http://devlicio.us/blogs/tim_barcz/archive/2008/08/13/strongly-typed-viewdata-without-a-codebehind.aspx

    http://www.infoq.com/news/2008/09/aspnet-mvc-codebehind

    []s
    Marcelo Ramos
    http://www.marceloramos.net/Blog

    Marcelo Ramos
    sábado, 11 de julho de 2009 14:47
  • Alcides,

    Estou migrando seu post para o fórum de Asp.Net.
    André Alves de Lima - http://andrealveslima.spaces.live.com
    domingo, 12 de julho de 2009 17:13
  • Olá Alcides,

    Você deve tivar a sua View direto na pagina ASPX no atributo Inherits da diretiva @Page, por exemplo

    <%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of MvcApplication2.Produto))" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	Index
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    
        <h2>Index</h2>
        <table>
            <tr>
                
                <th>
                    Valor
                </th>
                <th>
                    Nome
                </th>
                <th>
                    ProdutoId
                </th>
            </tr>
    
        <% For Each item In Model%>
        
            <tr>
                <td>
                    <%= Html.Encode(item.Valor) %>
                </td>
                <td>
                    <%= Html.Encode(item.Nome) %>
                </td>
                <td>
                    <%= Html.Encode(item.ProdutoId) %>
                </td>
            </tr>
        
        <% Next%>
        </table>
    
    </asp:Content>
    
    

    No exemplo acima tenho uma classe produto no meu model é tipo a minha View com essa classe é faço o foreach normalmente sem precisa de cast. No controller tudo fica da mesma forma!



    Se a resposta for útil por favor não esqueça de marca.
    Abraços,
    www.danielfonsecacastro.com.br
    Daniel Fonseca Castro
    segunda-feira, 13 de julho de 2009 13:22