asp.net-mvc – 实体创建抛出“没有为此对象定义的无参数构造函数”
发布时间:2020-05-24 22:47:58 所属栏目:asp.Net 来源:互联网
导读:我正在研究基本的MVC5 / EF6应用程序,并遇到以下错误: No parameterless constructor defined for this object. 当我在创建新Controller时使用由Visual Studio 2013搭建的默认创建操作和视图时会发生这种情况.我没有在这些生成的文件中调整任何内容(TestItem
|
我正在研究基本的MVC5 / EF6应用程序,并遇到以下错误: No parameterless constructor defined for this object. 当我在创建新Controller时使用由Visual Studio 2013搭建的默认创建操作和视图时会发生这种情况.我没有在这些生成的文件中调整任何内容(TestItemController,Views / TestItem / Create.cshtml).我的控制器是脚手架的实体看起来像这样: public class TestItem
{
private Category _category;
// Primary key
public int TestItemId { get; set; }
public int CategoryId { get; set; }
public string TestColumn { get; set; }
public virtual Category Category {
get { return _category; }
set { _category = value; }
}
protected TestItem()
{
}
public TestItem(Category category)
{
_category = category;
}
}
public class Category
{
private ICollection<TestItem> _testItems;
// Primary key
public int CategoryId { get; set; }
public string Description { get; set; }
public virtual ICollection<TestItem> TestItems
{
get { return _faqs; }
set { _faqs = value; }
}
public Category()
{
_testItems = new List<TestItem>();
}
}
我猜这是由于TestItem类让构造函数接受了一个Category对象,这就是为了保持域模型的贫乏.如果没有类别,则无法创建TestItem.但据我所知,在延迟加载等的情况下,EF应该使用受保护的无参数构造函数. 这里发生了什么,或者我做错了什么? 更新: public class TestItemsController : Controller
{
public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "TestItemId,OtherColumns")] TestItem testItem)
{
if (ModelState.IsValid)
{
db.TestItems.Add(testItem);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(testItem);
}
}
解决方法当然,EF可以使用受保护的构造函数,但是scaffolding会创建用于创建新项目的操作方法.这些操作方法需要无参数的公共构造函数.您可以找到这些创建方法here的一些细节. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET成员:拒绝用户阻止CSS,页面无法正确呈现?
- asp.net-mvc-3 – 为什么_ViewStart.cshtml访问ViewBag对象
- .NET 3.5 / VS 2008上的ASP.NET Web Services的自定义HTTP基
- 如何在ASP.NET中跟踪完成的文件下载
- asp-classic – 如何在VBScript中逐行读取CSV文件
- asp.net – IDENTITY_INSERT设置为关闭错误
- asp.net-mvc – 不要在JSON中序列化Entity Framework类引用
- asp.net-mvc-4 – DataAnnotation Range属性的客户端验证之
- asp.net-mvc – 在默认的asp.net mvc 5模板中输入-group-ad
- 将Funscript添加到现有的ASP.NET MVC项目中
推荐文章
站长推荐
- asp.net – 使用vb.net和EPPlus的单元格包装
- asp.net-mvc-2 – ASP MVC2中部分缓存的当前做法
- asp.net – 在.NET中以编程方式添加HttpHandler的
- asp.net-mvc – 使用StructureMap / ASP.MVC / V
- 在Kendo-UI图表中刷新方法和重绘方法有什么不同?
- asp.net-mvc-3 – MVC3值不能为null 参数名称:值
- asp.net-mvc – 在ASP.NET Identity中手动验证密
- asp.net – 无法安装Microsoft.AspNet.Razor 3.0
- 在ASP.net C#中伪造浏览器请求
- 获取ASP.NET中所有活动会话的列表
热点阅读
