Asp.net mvc 添加多个寄存器与一个寄存器MVC 3的关系
我是新的MVC开发人员,但长期以来我是C#程序员 在我的系统上,我需要添加多个电话号码并与一个客户建立链接。 这是我的流程: 1º保存我的客户数据。 2º向我最近的客户添加多个电话号码 此流不能位于多个页面上。 我需要保存客户,并在保存所有电话号码后,与客户链接 这是我的客户表: IdCliente int, Nome varchar(100), isAtivo钻头 这是我的电话号码表: IdTelefone int自动增量, IdPessoa int(带客户表的FK), 数字bigint 当我保存电话号码时,我需要传递我最近客户的IdCustomer 我的观点分为两部分。 包含de客户数据的客户页面,以及包含de电话号码数据的一个部分视图 这是我的HTMLAsp.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 当我
@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);
}