Asp.net mvc 未保存实体字段
我正在使用Visual Studio 2013、MVC 5.1、EF 6.0和.NET 4.5。首先使用默认连接字符串编写代码 我有一个非常简单的实体,名为Asp.net mvc 未保存实体字段,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我正在使用Visual Studio 2013、MVC 5.1、EF 6.0和.NET 4.5。首先使用默认连接字符串编写代码 我有一个非常简单的实体,名为SchoolModel,如下所示 public class SchoolModel { [HiddenInput(DisplayValue = false)] [Key] public int Id { get; private set; } [Display(Name="School Name")]
SchoolModel
,如下所示
public class SchoolModel
{
[HiddenInput(DisplayValue = false)]
[Key]
public int Id { get; private set; }
[Display(Name="School Name")]
[DataType(DataType.Text)]
public string Name { get; private set; }
}
我使用scaffolding特性创建了标准的MVC5视图/控制器组合,分别命名为School和SchoolController。我正在尝试向数据库中添加一些学校记录
创建视图:
@model OddsOnEnglish.GamingIELTS.Web.Models.SchoolModel
[snip]
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>SchoolModel</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Name, new {@class="col-md-2"})
<div class="col-md-offset-2 col-md-10">
@Html.EditorFor(model => model.Name)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
上面的db
是SchoolContext
的一个实例:
public class SchoolContext : DbContext
{
public SchoolContext() : base("name=DefaultConnection")
{
}
public DbSet<Models.SchoolModel> Schools { get; set; }
}
公共班级学校上下文:DbContext
{
public SchoolContext():base(“name=DefaultConnection”)
{
}
公立DbSet学校{get;set;}
}
所有这些都非常简单,基于各种教程。我的问题是,当我提交createschool表单时,索引页面再次显示,其中包含新学校的新行,但没有显示名称。查看数据库时,行确实会添加到相应的表中,但Id列中只有一个值—名称没有任何值。如果我在数据库中手动输入一个名称,该名称将显示在web界面中。显然,正在创建记录,但未填充名称字段。只需将您的模型更正为:
public class SchoolModel
{
[HiddenInput(DisplayValue = false)]
[Key]
public int Id { get; set; }
[Display(Name="School Name")]
[DataType(DataType.Text)]
public string Name { get; set; }
}
您面临的这个问题是因为私有集阻塞。请更正它。不要使用私有集..并尝试…@Exception谢谢您捕捉到这个问题。这么简单的事!想发布答案吗?发布了答案…@Grant-Palin。我忽略了这么明显的问题。显然需要另一只眼睛来捕捉它。模型已经修复,吸取了教训。太好了…总是从错误中吸取教训…谢谢…@GrantPalin
public class SchoolModel
{
[HiddenInput(DisplayValue = false)]
[Key]
public int Id { get; set; }
[Display(Name="School Name")]
[DataType(DataType.Text)]
public string Name { get; set; }
}