none
Salvar com 2 ou mais classes RRS feed

  • Pergunta

  • Pessoal estou começando em MVC, já fiz umas telas com 1 classe e uso model para salvar blz. Meu problema é o seguinte estou fazendo um cadastro de curriculo que te varias abas e cada aba tem um form com alguns campos e estes campos em alguns casas são de classes diferentes. Tipo ja aba dados basicos tenho campos nome , sobrenome, data de nascimento que faz parte da classe Pessoa, ai neste mesma tela tenho telefone, email que faz parte da classe contato, tb tenho username e senha que faz parte da classe user. Tipo neste caso não posos criar view tipada pois vou salvar em 3 tabelas diferentes na mesma tela. Não achei nada a respeito alguém tme uma ideia (formcollection viewbag...)?

    segue minha view

    <script type="text/javascript">
        $(function () {
            $(".datepicker").datepicker();
        });
    </script>
    @*@using (Html.BeginForm("BasicDataResult", "Recruitment", FormMethod.Post))*@
    @using (Ajax.BeginForm("SalveBasicDate", "Recruitment", null, new AjaxOptions()
    {
        OnSuccess = "OnSuccess",
        LoadingElementId = "loading"
    }, new { @id = "formBasicDate" }))
    {
        <div class="formLine clearfix">
            <input id="Id" type="hidden" name="Id" value="PersonID" />
            <fieldset id="Basicdadta" title="Dados Básicos">
                <legend align="right">Dados Básicos</legend>
                <div class="alpha">
                    <div class="p3 alpha" >
                        @Html.Label("Nome")
                        @Html.TextBox("Name")
                    </div>
                    <div class="p3">
                        @Html.Label("Sobrenome")
                        @Html.TextBox("LastName")
                        <input id="FullName" type="hidden" name="FullName" value="FullName" />
                    </div>
                    <div class="p3 omega">
                        @Html.Label("Sexo")
                        @Html.EnumDropDownListFor(model => model.Gender)
                    </div>
                </div>
                <div class="omega">
                    <div class="p3 alpha">
                        @Html.Label("Data de Nascimento")
                        @Html.TextBoxFor(model => model.BirthDate, new { @class = "validate[required] datefield", type = "date" })
                        
                    </div>
                    <div class="p2">
                        @Html.Label("Estado Civil")
                        @Html.EnumDropDownListFor(model => model.MaritalStatus)
                    </div>
                    <div class="p2">
                        @Html.Label("Telefone")
                        @Html.TextBox("Name")
                    </div>
                    <div class="p2 omega">
                        @Html.Label("Celular")
                        @Html.TextBox("celular")
                    </div>
                </div>
                <div class="p10 alpha">
                    <div class="p2 ">
                        @Html.Label("CPF")
                        @Html.TextBox("username")
                    </div>
                    <div class="p2 ">
                        @Html.Label("Senha")
                             @Html.Password("password")
                    </div>
                    <div class="p2 omega">
                        @Html.Label(" Confirmar Senha")
                     
                        @Html.Password("password")
                    </div>
                </div>
                <div class="omega">
                <div class="p3 alpha">
                    @Html.Label("Email")
                    @Html.TextBox("Email")
                </div>
                </div>
            </fieldset>
        </div>
        <input type="submit" name="SalveBasicDate" value="Próximo" title="Próximo" />


    Moizés Cerqueira | MCP
    Site: www.moizes.cerqueira.nom.br
    Twitter: @moicer

    quarta-feira, 5 de setembro de 2012 21:03

Respostas

  • Moizés, cria uma classe que servirá como uma ViewModel.

    Dentro dessa classe, você cria uma instância de cada objeto que precisa. Assim você pode tipar a view para essa classe ViewModel.

    Com isso você terá, ao enviar os dados para salvá-los no seu controller, um objeto do tipo ViewModel, preenchido com os objetos que você precisa salvar, e ai na sua controller, você faz o tratamento de regra de negócio e os salva.

    Entendeu?

    Atenciosamente,


    Ari Thomazini. Graduado em Ciência da Computação. ITIL V3 Certified Scrum Master Certified MCPD

    terça-feira, 11 de setembro de 2012 18:01

Todas as Respostas

  • O que vc precisa realmente?? Qual a dúvida?

    Júnior Pacheco

    segunda-feira, 10 de setembro de 2012 17:36
  • Moizés, cria uma classe que servirá como uma ViewModel.

    Dentro dessa classe, você cria uma instância de cada objeto que precisa. Assim você pode tipar a view para essa classe ViewModel.

    Com isso você terá, ao enviar os dados para salvá-los no seu controller, um objeto do tipo ViewModel, preenchido com os objetos que você precisa salvar, e ai na sua controller, você faz o tratamento de regra de negócio e os salva.

    Entendeu?

    Atenciosamente,


    Ari Thomazini. Graduado em Ciência da Computação. ITIL V3 Certified Scrum Master Certified MCPD

    terça-feira, 11 de setembro de 2012 18:01
  • Ari Thomazini Fiz isso e deu certo. Criei uma camada de objetos onde coloco casos de salvar varios objetos na mesma view e deu certo. Obrigado.

    Moizés Cerqueira | MCP / MCTS SQL SERVER

    terça-feira, 11 de setembro de 2012 19:02
  • Por nada Moizés. Qualquer dúvida pode me perguntar.

    Ari Thomazini. Graduado em Ciência da Computação. ITIL V3 Certified Scrum Master Certified MCPD

    quinta-feira, 13 de setembro de 2012 12:24
  • Blz. 

    fiz isso

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Sda.Ahrs.Commons.Entities;
    
    namespace Sda.Ahrs.Commons.LightEntities
    {
        public class CandidateLight : PersonLight
        {
            public virtual int MinorChildren { get; set; }
            public virtual Religion Religion { get; set; }
            public virtual bool Wonking { get; set; }
            public virtual string PhisicalDisabilities { get; set; }
            public virtual Region Region { get; set; }
    
            public virtual IList<Entity> Entities { get; set; }
        }
    }
    


    Moizés Cerqueira | MCP / MCTS SQL SERVER

    quinta-feira, 13 de setembro de 2012 21:49