none
Pegar dados de outra model e colocar no Create RRS feed

  • Pergunta

  • Olá gente boa tarde, estou quebrando a cabeça com asp.net MVC sou iniciante no assunto e gostaria da ajuda de vocês por gentileza seguinte:

    fiz um projeto onde na parte de cadastro de instrutores de voo digito o codigo anac dele e clico em consultar se existir no modelo cadastrogeral ele pega a informação do nome e manda para o modelo cadinstrutor e ai eu completo com as outras informações porém não entendo muito como isso funciona vou adicionar as telas aqui para vocês ter uma ideia de como está:

    
    // aqui está a parte da view do CREATE
    
    @using (Html.BeginForm("Create", "CadInstrutor", FormMethod.Post, new { ID = "FrmCadGeral" }))
    {
        @Html.AntiForgeryToken()
         @Html.ValidationSummary(true)
        <center>
            <div id="accordion_cadgeral" style="width:750px;">
                <h3>Cadastro de Instrutor de Voo</h3>
                <div>
                    <br /><br />
                    <div class="form-horizontal">
                        @Html.ValidationSummary(true)
    
                        <div class="form-group">
                            <label class="control-label col-sm-2">CódAnac</label>
                            <div class="col-sm-2">
                                @Html.TextBoxFor(model => model.CodAnac, new { @class = "form-control Canac" })
    
                                @Html.ValidationMessageFor(model => model.CodAnac)
                            </div>
                            <div class="col-lg-1">
                                <input type="submit" value="Consultar" formnovalidate="formnovalidate" rel="tooltip" title="Consultar Anac" name="Command" style="margin-right:15px;" class="btn btn-warning glyphicon glyphicon-search"/>
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.Nome, new { @class = "control-label col-sm-2" })
                            <div class="col-sm-5">
                                @Html.TextBoxFor(model => model.Nome, new { @id="Nome", @class = "form-control" })
                                @Html.ValidationMessageFor(model => model.Nome)
    
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="control-label col-sm-2">Nome de Pista</label>
                            <div class="col-sm-5">
                                @Html.TextBoxFor(model => model.Apelido, new { @class = "form-control" })
                                @Html.ValidationMessageFor(model => model.Apelido)
                            </div>
                        </div>
                        <div class="form-group">
                            @Html.LabelFor(model => model.Peso, new { @class = "control-label col-sm-2" })
                            <div class="col-sm-2">
                                @Html.TextBoxFor(model => model.Peso, new { @class = "form-control", style = "width:100px;" })
                                @Html.ValidationMessageFor(model => model.Peso)
                            </div>
                            <div class="col-sm-3">
                                <label>*** Digite o Peso em Kg.</label>
                            </div>
                        </div>
                        <h4><<<<<< Validades >>>>></h4>
                        <div class="form-group">
                            <label class="control-label col-sm-2">Cma Até:</label>
                            <div class="col-sm-2">
                                @Html.TextBoxFor(model => model.ValidadeCma, new { @class = "form-control datepicker date" })
                                @Html.ValidationMessageFor(model => model.ValidadeCma)
                            </div>
                            @Html.LabelFor(model => model.ClasseCma, new { @class = "control-label col-sm-2" })
                            <div class="col-sm-2" style="width:165px;">
                                <select id="ClasseCma" class="form-control" name="ClasseCma">
                                    <option value="1">1(a)</option>
                                    <option value="2">2(a)</option>
                                </select>
                                @Html.ValidationMessageFor(model => model.ClasseCma)
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="control-label col-sm-2">CHT Até:</label>
                            <div class="col-sm-2">
                                @Html.TextBoxFor(model => model.VecimentoCht, new { @class = "form-control datepicker date" })
                                @Html.ValidationMessageFor(model => model.VecimentoCht)
                            </div>
                            <label class="control-label col-sm-2">INVA Até:</label>
                            <div class="col-sm-2">
                                @Html.TextBoxFor(model => model.VencimentoHabilitaInva, new { @class = "form-control datepicker date" })
                                @Html.ValidationMessageFor(model => model.VencimentoHabilitaInva)
                            </div>
                        </div>
                        <br /><br />
                    </div>
                </div>
            </div>
        </center>
        <br /><br />
        <div class="form-horizontal">
            <div class="form-group">
                <div style="margin-left:530px;">
                    <input type="submit" value="Salvar" formnovalidate="formnovalidate" rel="tooltip" title="Cadastrar Registro" name="Command" style="margin-right:15px;" class="btn btn-success" />
                    <a href='@Url.Action("Index", "CadInstrutor", null)'><img src="~/Content/Icones/home128x128.png" rel="tooltip" border="0" title="Voltar" width="32px" height="32px" /></a>
    
                </div>
            </div>
        </div>
    }
    
    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
        <script src="~/Scripts/myscript/frmCadGeral.js"></script>
        <script src="~/Scripts/myscript/vldExtra.js"></script>
    }

    //aqui a do controller       
    // POST: /CadInstrutor/Create
            // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
            // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create([Bind(Include = "ID,CodAnac,Nome,Apelido,Peso,ValidadeCma,ClasseCma,VecimentoCht,VencimentoHabilitaInva")] CadInstrutor cadinstrutor, Cadastrogeral cadgeral, FormCollection form, string Command)
            {
                if(Command == "Consultar")
                {
                    string vl = Request.Form["CodAnac"];
                    var cadInstrores = from i in db.CadInstrutors
                                       select i;
                }
                if (Command == "Salvar") 
                { 
                    if (ModelState.IsValid)
                    {
                        db.CadInstrutors.Add(cadinstrutor);
                        db.SaveChanges();
                        return RedirectToAction("Index");
                    }
                }
                return View(cadinstrutor);
            }
            
    
            // GET: /CadInstrutor/Edit/5
            public ActionResult Edit(int? id)
            {
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                CadInstrutor cadinstrutor = db.CadInstrutors.Find(id);
                if (cadinstrutor == null)
                {
                    return HttpNotFound();
                }
                return View(cadinstrutor);
            }
    

     
    //aqui esta o modelo principal onde eu quero pegar so a informação de nome daqui.
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Entity;
    
    namespace flightdata.Models
    {
        public class Cadastrogeral
        {
            /* Aqui vai funcionar toda a parte de cadastro do sistema tanto para alunos quanto para invas e adminstradores.
               onde vai possibilitar dar acesso ao usuário. */
          
            //--> Parte de Dados Pessoais.
            public int ID { get; set; }
            [Display(Name = "CódAnac")]
            public int? CodAnac { get; set; }
            public string Nome { get; set; }
            [Display(Name="D.Nascimento")]
            [DataType(DataType.Date)]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime? DataNasc { get; set; }
            public string Sexo { get; set; }
            public string Nacionalidade { get; set; }
            public string Naturalidade { get; set; }
            [Display(Name = "Estado Civil")]
            public string Estadocivil { get; set; }
            [Display(Name = "Nome do Pai")]
            public string Nomedopai { get; set; }
            [Display(Name = "N. da Mãe")]
            public string Nomedamae { get; set; }
            //--> Parte de Contatos Pessoais.
            public string Email { get; set; }
            [Display(Name = "F.Residencial")]
            public string FoneRes { get; set; }
            [Display(Name = "F.Comercial")]
            public string FoneCom { get; set; }
            [Display(Name = "F.Celular")]
            public string FoneCel { get; set; }
            //--> Parte de Documentação.
            public string Rg { get; set; }
            public string OrgEmissor { get; set; }
            public string Cpf { get; set; }
            [Display(Name = "Título de Eleitor")]
            public string TitEleitor { get; set; }
            public string Reservista { get; set; }
            public string Escolaridade { get; set; }
            //-> Parte da Saúde.
            [Display(Name = "Tipo Sanguineo")]
            public string TipoSanguineo { get; set; }
            public string Alergias { get; set; }
            //--> Parte de Endereços
            public string Cep { get; set; }
            [Display(Name = "Endereço")]
            public string Endereco { get; set; }
            [Display(Name = "Numero")]
            public string NrEndereco { get; set; }
            public string Complemento { get; set; }
            public string Cidade { get; set; }
            public string Bairro { get; set; }
            public string Uf { get; set; }
            public string OBS { get; set; }
            [Display(Name = "D.Inscrição")]
            [DataType(DataType.Date)]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime? DataInsc { get; set; }
            [Display(Name = "Perteçe ao Grupo")]
            public string GrupoPertencente { get; set; }
    
            public virtual ICollection<Cadastrogeral> CadGeral { get; set; }
        }
            
    }
    //Aqui a parte do cadastro de instrutor.
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Entity;
    
    namespace flightdata.Models
    {
        public class CadInstrutor
        {
            public int ID { get; set; }
            public int? CodAnac { get; set; }
            public string Nome { get; set; }
            public string Apelido { get; set; }
            public string Peso { get; set; }
            [DataType(DataType.Date)]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime? ValidadeCma { get; set; }
            public int? ClasseCma { get; set; }
            //parte de vencimentos
            [DataType(DataType.Date)]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime? VecimentoCht { get; set; }
            [DataType(DataType.Date)]
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime? VencimentoHabilitaInva { get; set; }
        }
       
    }

    obrigado pela ajuda.
    terça-feira, 4 de março de 2014 15:03

Respostas

  • Consegui resolver da seguinte forma:

    [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create([Bind(Include = "ID,CodAnac,Nome,Apelido,Peso,ValidadeCma,ClasseCma,VecimentoCht,VencimentoHabilitaInva")] CadInstrutor cadinstrutor, FormCollection form, string Command)
            {
                if(Command == "Consultar")
                {
                   
                    string CAnac = Request.Form["CodAnac"];
                    var CadastroGeral = db.Cadastrogerals.SqlQuery("select * from dbo.Cadastrogerals where CodAnac = " + Convert.ToInt32(CAnac)).ToList();
                    if(CadastroGeral.Count != 0)
                    {
                        ModelState.Clear();
                        string nome = CadastroGeral[0].Nome;
                        cadinstrutor.Nome = nome;
                    }
                }
                if (Command == "Salvar") 
                { 
                    if (ModelState.IsValid)
                    {
                        db.CadInstrutors.Add(cadinstrutor);
                        db.SaveChanges();
                        return RedirectToAction("Index");
                    }
                }
                return View(cadinstrutor);
            }

    não sei se é a forma correta mais o problema foi solucionado está conseguindo pegar o campo nome e jogar no formulário. seria esta a forma mais correta ?

    • Marcado como Resposta Victor Dekolá terça-feira, 4 de março de 2014 20:07
    terça-feira, 4 de março de 2014 20:07