我是ASP.NET MVC4的新成员,并坚持使用非常基本的东西。ASP.NET MVC3该列不能包含空值
我有这个模型
public class Book
{
[Key]
public int BookID { get; set; }
public string BookName { get; set; }
}
和发布视图
@{
ViewBag.Title = "Publish";
}
<h2>Publish</h2>
@using (@Html.BeginForm("Publish", "Home", FormMethod.Post))
{
@Html.TextBoxFor(m => m.BookID);
@Html.TextBoxFor(m => m.BookName);
<input type="submit" />
}
而且这样
[HttpPost]
public ActionResult Publish(Book book)
{
if (ModelState.IsValid)
{
_db.Books.Add(book);
_db.SaveChanges();
return RedirectToAction("Index");
}
return View(book);
}
一个发布操作方法,我使用的SQL Server Compact 4.0数据库。 _db是DbContext实例。
我有一个表书籍与领域的BookID和BOOKNAME。 BookID是主键。所以非常基本。
问题是,当我转到发布视图,在输入字段中输入一个的BookID和BOOKNAME,然后按提交,我总是得到
*列不能包含空值。 [列名= BookID,表名= Books] *例外。唯一的办法就是当我使BookID也是表中的Identity字段时,我当前不想要的。
我在这个简单的结构中错过了什么?
你应该标记与正在使用藏汉实体框架版本的问题,如果没有EF,指出什么是_db是 –
它的实体框架与版本4.3.6 – Dandy
试试这个作为一个属性的BookID [Required,Key,DatabaseGenerated(DatabaseGeneratedOption.None)] –