Сама ошибка:
vfl.ru/fotos/2512cee816224034.htmlДанные в БД ( Order ):
vfl.ru/fotos/11e7374016224035.htmlДанные в БД ( Cars )
vfl.ru/fotos/898e0ddf16224041.htmlHomeController:
namespace WebApplication4.Controllers
{
public class HomeController : Controller
{
// GET: Home
private Models.ShopDBEntities db = new Models.ShopDBEntities();
public ActionResult Index()
{
var Items = db.Cars;
return View(Items);
}
[HttpPost]
public ActionResult Index(string Name, string Tel, int Car)
{
Order order = new Order
{
UserName = Name,
UserTel = Tel,
CarId = Car,
Status = "Создана"
};
db.Orders.Add(order);
db.SaveChanges();
return View();
}
}
}
Car.cs ( Model ):
public partial class Car
{
public int Id { get; set; }
public string Title { get; set; }
public string Type { get; set; }
public string Description { get; set; }
public string Preview { get; set; }
public string SubPreview { get; set; }
public Nullable<int> count { get; set; }
public Nullable<int> price { get; set; }
}
Order.cs ( Model )
public int Id { get; set; }
public string UserName { get; set; }
public string UserTel { get; set; }
public string Status { get; set; }
public int CarId { get; set; }
DbContextnamespace WebApplication4.Models
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class ShopDBEntities : DbContext
{
public ShopDBEntities()
: base("name=ShopDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Car> Cars { get; set; }
public virtual DbSet<Order> Orders { get; set; }
}
}
<connectionStrings>
<add name="BookContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Bookstore.mdf;Integrated Security=True; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="ShopDBEntities" connectionString="metadata=res://*/Models.ShopDBModel.csdl|res://*/Models.ShopDBModel.ssdl|res://*/Models.ShopDBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\ShopDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
View:@{
ViewBag.Title = "Index";
Layout = "~/Views/_Layout.cshtml";
}
<td class="big_card" colspan="3">
<form onsubmit="return false" action="/Home/Index" method="POST">
<fields>
<p > Оформление заказа</p>
<input type="text" name="Name" placeholder="Введите ваше имя" required /><br />
<input type="tel" name="Tel" placeholder="Введите номер телефона в формате 8-ххх-ххх-хххх" required patern="8-[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br />
<select name="Car" required>
<option value="1">Ghibili</option>
<option value="2">Quattroporte</option>
<option value="3">GranTurismo</option>
</select><br />
<input type="submit" />
</fields>
</form>
</td>
JS/*Практика JavaScript*/
function SetIMG(selected_url)
{
var item = document.getElementById("Preview");
item.src=selected_url;
}
/*Практика jQuery*/
$(document).ready(function(){
$('#header').fadeTo(2000,0.3,function(){
$('html, body').animate({ scrollTop: $('#content').offset().top }, 2000);
});
});
Проверка перед отправкой в бд:
/*Ajax jQuery*/
$(document).on('submit','form',function(){
var UserName=$('input[name=Name]').val();
var UserTel=$('input[name=Tel]').val();
var Car=$('select').val();
//Валидация введенных данных.
//Проверяем имя
if(UserName.length>0)
{
//Проверяем номер телефона
var regular=/^\8-[0-9]{3}-[0-9]{3}-[0-9]{4}/;
if(regular.test(UserTel)==true)
{
alert('Всё норм!');
SubmitForm(UserName,UserTel,Car);
}
else
{
alert("Вы неверно указали номер телефона");
}
}
else{
alert("Вы забыли указать имя");
}
});
/*Ajax jQuery*/
function SubmitForm(name,tel,car)
{
$.ajax({
method: "POST",
url: "/Home/Index",
data: { Name: name, Tel: tel, Car:car }
})
.done(function( msg ) {
alert( "Отлично: " + msg );
}).fail(function() {
alert( "При передачи данных произошла ошибка" );
});
}
IIS включал и выключал - не помогло. IDE: Visual studio 2015, ASP.NET MVC 5, ms sql 2014. Бд Cars заполнена товаром
Может дело в том, что Id и CarId не связаны между собой ? Если да, то как тогда связать ?
vfl.ru/fotos/799f0d4e16224372.html