控制器操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult New_Shelf(Shelf shelf)
{
shelf.User_Id = int.Parse(Request.Cookies["UserId"].Value);
db_shelf.Shelves.Add(shelf);
db_shelf.SaveChanges();
return RedirectToAction("Index", "Home");
}
型号:
namespace Book_shelf.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
public partial class Shelf
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public int Size { get; set; }
[ForeignKey("Id")]
public int User_Id { get; set; }
}
}
查看:
@model Book_shelf.Models.Shelf
@using (Html.BeginForm("New_Shelf", "Home", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<label style="font-family:sans-serif">Name</label>
<br />
@Html.TextBoxFor(a => a.Name)
<br />
<br />
<label style="font-family:sans-serif">Size</label>
<br />
@Html.TextBoxFor(a => a.Size)
<br />
<br />
<button class="btn btn-sm" type="submit"> Add</button>
}
错误:
无法为表格中的标识列插入显式值&#39; Shelf&#39;当&gt; IDENTITY_INSERT设置为OFF时。
我是ASP.net MVC和Entity Framework的新手。 我正在尝试为我的表格插入一个新行&#39; Shelf&#39;。但是当将数据发布到Action时,看起来该视图也在发送Id。我试图在下面记录shelf.Id的值行动,它是&#39; 0&#39;。如何阻止视图发送Id属性的任何数据?
答案 0 :(得分:1)
问题出现在shelf.edmx文件中,我检查了表设计器中Id
列的属性,并将storedGeneratedPattern
值设置为identity
,之前设置为{{1} }}