Добрый день.
Пишу проект посредством asp.net mvc.
Добавил базу данных, модель. Контроллеры и представления заодно.
При проверке работоспособности, в представлении нет опции добавлять несколько записей на одного человека.
То есть, есть допустим две таблицы.
1. Главная таблица. Столбцы: id_chelovek, ФИО, Обращения.
2. Обращения. Столбцы: id_chelovek, Дата обращения, Причина обращения, Отметка о выполнении.
3. Задача: чтобы к одной записи на одного человека цеплялись обращения.
4. Не пойму как это реализовать на C#. В контроллере и моделе.
Код контроллера и модели прилагаю.
namespace tson10.Controllers
{
public class peopleController : Controller
{
private tsonEntities4 db = new tsonEntities4();
// GET: people
public async Task<ActionResult> Index()
{
var people = db.people.Include(p => p.category).Include(p => p.child).Include(p => p.city).Include(p => p.disability).Include(p => p.firing).Include(p => p.status).Include(p => p.street).Include(p => p.treatment);
return View(await people.ToListAsync());
}
// GET: people/Details/5
public async Task<ActionResult> Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
person person = await db.people.FindAsync(id);
if (person == null)
{
return HttpNotFound();
}
return View(person);
}
// GET: people/Create
public ActionResult Create()
{
ViewBag.id_category = new SelectList(db.categories, "id_category", "Категория");
ViewBag.id_chelovek = new SelectList(db.children, "id_chelovek", "Фамилия");
ViewBag.id_city = new SelectList(db.cities, "id_city", "Населенный_пункт");
ViewBag.id_disability = new SelectList(db.disabilities, "id_disability", "Инвалидность");
ViewBag.id_firing = new SelectList(db.firings, "id_firing", "Отопление");
ViewBag.id_status = new SelectList(db.status, "id_status", "Статус");
ViewBag.id_street = new SelectList(db.streets, "id_street", "Улица");
ViewBag.id_chelovek = new SelectList(db.treatments, "id_chelovek", "Дата_обращения", "Причина_обращения", "Отметка_о_выполнении");
return View();
}
// POST: people/Create
// Чтобы защититься от атак чрезмерной передачи данных, включите определенные свойства, для которых следует установить привязку. Дополнительные
// сведения см. в статье https://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "id_chelovek,Фамилия,Имя,Отчество,Дата_рождения,Телефон,id_category,id_disability,id_city,id_street,Дом,Квартира,id_firing,id_status")] person person)
{
if (ModelState.IsValid)
{
db.people.Add(person);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
ViewBag.id_category = new SelectList(db.categories, "id_category", "Категория", person.id_category);
ViewBag.id_chelovek = new SelectList(db.children, "id_chelovek", "Фамилия", person.id_chelovek);
ViewBag.id_city = new SelectList(db.cities, "id_city", "Населенный_пункт", person.id_city);
ViewBag.id_disability = new SelectList(db.disabilities, "id_disability", "Инвалидность", person.id_disability);
ViewBag.id_firing = new SelectList(db.firings, "id_firing", "Отопление", person.id_firing);
ViewBag.id_status = new SelectList(db.status, "id_status", "Статус", person.id_status);
ViewBag.id_street = new SelectList(db.streets, "id_street", "Улица", person.id_street);
ViewBag.id_chelovek = new SelectList(db.treatments, "id_chelovek", "Причина_обращения", person.id_chelovek);
return View(person);
КОД модели гл.таблицы.:
namespace tson10.Models
{
using System;
using System.Collections.Generic;
public partial class person
{
public int id_chelovek { get; set; }
public string Фамилия { get; set; }
public string Имя { get; set; }
public string Отчество { get; set; }
public Nullable<System.DateTime> Дата_рождения { get; set; }
public string Телефон { get; set; }
public Nullable<int> id_category { get; set; }
public Nullable<int> id_disability { get; set; }
public Nullable<int> id_city { get; set; }
public Nullable<int> id_street { get; set; }
public string Дом { get; set; }
public string Квартира { get; set; }
public Nullable<int> id_firing { get; set; }
public Nullable<int> id_status { get; set; }
public virtual category category { get; set; }
public virtual child child { get; set; }
public virtual city city { get; set; }
public virtual disability disability { get; set; }
public virtual firing firing { get; set; }
public virtual status status { get; set; }
public virtual street street { get; set; }
public virtual treatment treatment { get; set; }
}
}
КОД модели обращений:
namespace tson10.Models
{
using System;
using System.Collections.Generic;
public partial class treatment
{
public int id_chelovek { get; set; }
public Nullable<System.DateTime> Дата_обращения { get; set; }
public string Причина_обращения { get; set; }
public string Отметка_о_выполнении { get; set; }
public virtual person person { get; set; }
}
}
Уточню. Целью является "привязка" id_chelovek гл.таблицы к столбцам таблицы Обращения. Что было так:
Иванов Иван Иванович
00.00.00.
id_chelovek - Обращение 1
id_chelovek - Обращение 2
id_chelovek - Обращение 3
...
Признаю, глупый вопрос..но хочу это понять. Как реализовать на C# в контроллере?
Или как вообще реализовать это?
Спасибо за внимание.