Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 添加多个寄存器与一个寄存器MVC 3的关系_Asp.net Mvc_Entity Framework_View_Partial Views_Relationship - Fatal编程技术网

Asp.net mvc 添加多个寄存器与一个寄存器MVC 3的关系

Asp.net mvc 添加多个寄存器与一个寄存器MVC 3的关系,asp.net-mvc,entity-framework,view,partial-views,relationship,Asp.net Mvc,Entity Framework,View,Partial Views,Relationship,我是新的MVC开发人员,但长期以来我是C#程序员 在我的系统上,我需要添加多个电话号码并与一个客户建立链接。 这是我的流程: 1º保存我的客户数据。 2º向我最近的客户添加多个电话号码 此流不能位于多个页面上。 我需要保存客户,并在保存所有电话号码后,与客户链接 这是我的客户表: IdCliente int, Nome varchar(100), isAtivo钻头 这是我的电话号码表: IdTelefone int自动增量, IdPessoa int(带客户表的FK), 数字bigint 当我

我是新的MVC开发人员,但长期以来我是C#程序员

在我的系统上,我需要添加多个电话号码并与一个客户建立链接。 这是我的流程:

1º保存我的客户数据。 2º向我最近的客户添加多个电话号码

此流不能位于多个页面上。 我需要保存客户,并在保存所有电话号码后,与客户链接

这是我的客户表: IdCliente int, Nome varchar(100), isAtivo钻头

这是我的电话号码表: IdTelefone int自动增量, IdPessoa int(带客户表的FK), 数字bigint

当我保存电话号码时,我需要传递我最近客户的IdCustomer

我的观点分为两部分。 包含de客户数据的客户页面,以及包含de电话号码数据的一个部分视图

这是我的HTML

@model MSX_Contabil.Models.PESSOA_TB
@{    ViewBag.Title = "MSX Contail - Cadastro de Pessoa";
}
<h2>
    Cadastro de pessoa</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script>
    $(function () {
        $("#DT_NASCIMENTO").datepicker();
        $("#accordion").accordion();
        $("#tabs").tabs();
    }); 
</script>
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    <table style="width: 100%">
        <tr>
            <td style="width: 25%">
                @Html.LabelFor(model => model.ID_TIPO_PESSOA, "Tipo pessoa")<label>*</label>
            </td>
            <td style="width: 25%">
                @Html.LabelFor(model => model.NM_PESSOA, "Nome")<label>*</label>
            </td>
            <td style="width: 25%">
            </td>
            <td style="width: 25%">
            </td>
        </tr>
        <tr>
            <td>
                @Html.DropDownList("ID_TIPO_PESSOA", "-- selecione --")
                @Html.ValidationMessageFor(model => model.ID_TIPO_PESSOA, "Campo obrigatório")
            </td>
            <td colspan="3">
                @Html.EditorFor(model => model.NM_PESSOA)
                @Html.ValidationMessageFor(model => model.NM_PESSOA, "Campo obrigatório")
            </td>
        </tr>
        <tr>
            <td>
                @Html.LabelFor(model => model.DT_NASCIMENTO, "Data nascimento")<label>*</label>
            </td>
            <td>
                @Html.LabelFor(model => model.ID_ESTADO_CIVIL, "Estado civil")
            </td>
            <td>
                @Html.LabelFor(model => model.FL_ATIVO, "Pessoa ativa")
            </td>
            <td>
            </td>
        </tr>
        <tr>
            <td>
                @Html.EditorFor(model => model.DT_NASCIMENTO)
                @Html.ValidationMessageFor(model => model.DT_NASCIMENTO, "Campo obrigatório")
            </td>
            <td>
                @Html.DropDownList("ID_ESTADO_CIVIL", "-- selecione --")
            </td>
            <td>
                @Html.EditorFor(model => model.FL_ATIVO)
                @Html.ValidationMessageFor(model => model.FL_ATIVO)
            </td>
            <td>
            </td>
        </tr>
    </table>



    if (ViewBag.PessoaSalva != true)
    {
    <p>
        <input type="submit" value="Salvar" />
        <input type="submit" value="Cancelar" onclick="javascript:window.navigate('/Pessoa'); return false;" />
    </p>
    }
}
@if (ViewBag.PessoaSalva == true)
{
    <div id="tabs">
        <ul>
            <li><a href="#Telefone">Telefones</a></li>
            <li><a href="#Documento">Documentos</a></li>
            <li><a href="#Endereco">Endereços</a></li>
            <li><a href="#Email">E-mails</a></li>
            <li><a href="#Contato">Contatos</a></li>
        </ul>
        <div id="Telefone">
            <p>
                @Html.Partial("TelefonePessoa", new MSX_Contabil.Models.TELEFONE_PESSOA_TB())
            </p>
        </div>
        <div id="Document">
        </div>
        <div id="Endereco">
        </div>
        <div id="Email">
        </div>
        <div id="Contato">
        </div>
    </div>
}
电话控制器:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MSX_Contabil.Models;

namespace MSX_Contabil.Controllers
{ 
    public class TelefonePessoaController : Controller
    {
        private MSXContabilEntities db = new MSXContabilEntities();

        //
        // GET: /TelefonePessoa/

        public ViewResult Index()
        {
            var telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Include("PESSOA_TB");
            return View(telefone_pessoa_tb.ToList());
        }

        //
        // GET: /TelefonePessoa/Details/5

        public ViewResult Details(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            return View(telefone_pessoa_tb);
        }

        //
        // GET: /TelefonePessoa/Create

        public ActionResult Create()
        {
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA");
            return View();
        } 

        //
        // POST: /TelefonePessoa/Create

        [HttpPost]
        public ActionResult Create(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                db.TELEFONE_PESSOA_TB.AddObject(telefone_pessoa_tb);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        [HttpPost, ActionName("Inserir")]
        public ActionResult Inserir(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                telefone_pessoa_tb.ID_PESSOA = Convert.ToInt32(RouteData.GetRequiredString("ID_PESSOA"));
                db.TELEFONE_PESSOA_TB.AddObject(telefone_pessoa_tb);
                db.SaveChanges();
            }

            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }        

        //
        // GET: /TelefonePessoa/Edit/5

        public ActionResult Edit(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        //
        // POST: /TelefonePessoa/Edit/5

        [HttpPost]
        public ActionResult Edit(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                db.TELEFONE_PESSOA_TB.Attach(telefone_pessoa_tb);
                db.ObjectStateManager.ChangeObjectState(telefone_pessoa_tb, EntityState.Modified);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        //
        // GET: /TelefonePessoa/Delete/5

        public ActionResult Delete(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            return View(telefone_pessoa_tb);
        }

        //
        // POST: /TelefonePessoa/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {            
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            db.TELEFONE_PESSOA_TB.DeleteObject(telefone_pessoa_tb);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
我解决了我的问题

我设置了一个链接,重定向到传递参数IdCustomer的电话号码视图,保存电话号码后,重定向到传递Id的action Edit Customer

<p>
   @Html.ActionLink("Adicionar telefone", "Create", "TelefonePessoa", new { id = Model.ID_PESSOA, guid = Model.CD_IDENTIFICACAO }, null)
</p>

这是太多的代码。(为什么您需要为您的问题显示
删除
索引
操作等?),到我的PartialView保存与我收到的Id链接的电话号码?
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MSX_Contabil.Models;

namespace MSX_Contabil.Controllers
{ 
    public class TelefonePessoaController : Controller
    {
        private MSXContabilEntities db = new MSXContabilEntities();

        //
        // GET: /TelefonePessoa/

        public ViewResult Index()
        {
            var telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Include("PESSOA_TB");
            return View(telefone_pessoa_tb.ToList());
        }

        //
        // GET: /TelefonePessoa/Details/5

        public ViewResult Details(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            return View(telefone_pessoa_tb);
        }

        //
        // GET: /TelefonePessoa/Create

        public ActionResult Create()
        {
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA");
            return View();
        } 

        //
        // POST: /TelefonePessoa/Create

        [HttpPost]
        public ActionResult Create(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                db.TELEFONE_PESSOA_TB.AddObject(telefone_pessoa_tb);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        [HttpPost, ActionName("Inserir")]
        public ActionResult Inserir(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                telefone_pessoa_tb.ID_PESSOA = Convert.ToInt32(RouteData.GetRequiredString("ID_PESSOA"));
                db.TELEFONE_PESSOA_TB.AddObject(telefone_pessoa_tb);
                db.SaveChanges();
            }

            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }        

        //
        // GET: /TelefonePessoa/Edit/5

        public ActionResult Edit(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        //
        // POST: /TelefonePessoa/Edit/5

        [HttpPost]
        public ActionResult Edit(TELEFONE_PESSOA_TB telefone_pessoa_tb)
        {
            if (ModelState.IsValid)
            {
                db.TELEFONE_PESSOA_TB.Attach(telefone_pessoa_tb);
                db.ObjectStateManager.ChangeObjectState(telefone_pessoa_tb, EntityState.Modified);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
            return View(telefone_pessoa_tb);
        }

        //
        // GET: /TelefonePessoa/Delete/5

        public ActionResult Delete(int id)
        {
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            return View(telefone_pessoa_tb);
        }

        //
        // POST: /TelefonePessoa/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {            
            TELEFONE_PESSOA_TB telefone_pessoa_tb = db.TELEFONE_PESSOA_TB.Single(t => t.ID_PESSOA == id);
            db.TELEFONE_PESSOA_TB.DeleteObject(telefone_pessoa_tb);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
<p>
   @Html.ActionLink("Adicionar telefone", "Create", "TelefonePessoa", new { id = Model.ID_PESSOA, guid = Model.CD_IDENTIFICACAO }, null)
</p>
[HttpPost]
public ActionResult Create(TELEFONE_PESSOA_TB telefone_pessoa_tb, int id, string guid)
{
   if (ModelState.IsValid)
    {
       telefone_pessoa_tb.ID_PESSOA = id;
       db.TELEFONE_PESSOA_TB.AddObject(telefone_pessoa_tb);
       db.SaveChanges();
       return RedirectToAction("Edit", "Pessoa", new { guid = guid });
    }

    ViewBag.ID_PESSOA = new SelectList(db.PESSOA_TB, "ID_PESSOA", "CD_PESSOA", telefone_pessoa_tb.ID_PESSOA);
    return View(telefone_pessoa_tb);
}