Я работаю над проблемой MVC, когда пользователь вводит в форму данные, которые будут храниться в базе данных sql. База данных уже существует, имеет много таблиц и связана с моим asp.net.
Я хочу, чтобы входные данные были сохранены в правильной таблице и правильной строке. Вот моя попытка кода. Данные тривиальны.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using My_App.Models;
namespace My_App.Controllers
{
public class RegistrationController : Controller
{
public ActionResult Registration()
{
Database1 db = new Database1();
List<User> list = db.User.ToList();
ViewBag.UserList = new SelectList(list, "id_car", "id_user", "name_user");
return View();
}
[HttpPost]
public ActionResult Registration(Car model)
{
try
{
Database1 db = new Database1();
List<User> list = db.User.ToList();
ViewBag.UserList = new SelectList(list, "id_car", "id_user", "name_user");
Car cars = new Car();
cars.id_car = model.id_car;
cars.id_city = model.id_city;
cars.car_name = model.car_name;
db.Car.Add(cars);
db.SaveChanges;
User users = new User();
users.id_car = model.id_car;
users.id_user = model.id_user;
users.name_user = model.name_user;
db.User.Add(users);
db.SaveChanges;
}
catch (Exception ex)
{
throw ex;
}
return View(model);
}
}
}
View
@model My_app.Models.Car
@using (Html.BeginForm("Registration", "Registration", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.LabelFor(model=>model.id_car , new { @class = "control-label col-md-2" })
@Html.EditorFor((model=>model.id_car )
@Html.ValidationMessageFor((model=>model.id_car )
@Html.LabelFor(model => model.car_name, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.car_name)
@Html.ValidationMessageFor(model => model.car_name)
@Html.LabelFor(model => model.name_user, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.name_user)
@Html.ValidationMessageFor(model => model.name_user)
}
</p>
<pre><code>SELECT TOP (1000) [id_car]
,[id_city]
,[car_name]
FROM [CarUsers].[dbo].[Car]
SELECT TOP (1000) [id_car]
,[id_user]
,[name_user]
FROM [CarUsers].[dbo].[User]
Когда я пишу только контроллер для Car, он работает (данные записываются в мою таблицу SQL), но когда я пишу только для пользователя, он не работает (я изменил модель на User)
Я также пытался с MultipleClass .. также не работает. Я не могу понять ситуацию проблемы и где происходит ошибка. Я хочу, чтобы данные записывались в две таблицы одновременно.
Спасибо за ваше время и полезные советы. С наилучшими пожеланиями.