创建的对象的ID始终等于零
本文关键字:等于零 ID 对象 创建 | 更新日期: 2023-09-27 18:20:04
我正在创建web应用程序,该应用程序必须具有创建对象的功能(它们的id、名称和与其相关的对象列表)。每次我创建一个新对象时,它的id是否等于零?解决这个问题的最佳方法是什么?
我的控制器:
// GET: Foo/Create
public ActionResult Create()
{
return View();
}
// POST: Foo/Create
[HttpPost]
public ActionResult Create(Foo foo)
{
try
{
var list = (List<Foo>)Session["list_foo"];
if (list != null)
{
list.Add(foo);
}
else
{
list = new List<Foo>();
list.Add(foo);
}
Session["list_foo"] = list;
return RedirectToAction("List");
}
catch
{
return View();
}
}
public ActionResult List()
{
var model = Session["list_foo"];
return View(model);
}
每次我创建一个新对象时,它的id是否等于零?什么是解决这个问题的最佳方法?
这是合理的,因为每次创建新对象时,都不会更新它的id。具体来说,正如我可以假设的那样,id将是int
,当您获取表单并对其进行POST时,您POST的模型的id将是0,因为int
的默认值是0。POST时,将新创建的对象添加到列表中。您不将其存储在数据库中,检索相应的id,然后更新obect的id。这就是为什么id
总是0。
此外,我认为GET应该是这样的:
public ActionResult Create()
{
var model = new Foo();
return View(model);
}
这就是HttpPost创建控制器应该看起来像的样子
[HttpPost]
public ActionResult Create(Foo foo)
{
try
{
var _objddContext = new DBContext();
if (_objdBentityContext != null)
{
_objdBentityContext.FoosEntity.Add(foo);
}
else
{
_objdBentityContext.FoosEntity = new FoosEntity();
_objdBentityContext.FoosEntity.Add(foo);
}
_objdBentityContext.FoosEntity.SaveChanges()
return RedirectToAction("List");
}
catch
{
return View();
}
}
应该有一个DBContext类,用于保存和关联所有实体这就是初始化并保存foo数据的类。您可以在下方查看此链接
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html
让我知道你过得怎么样。。。。坚持下去…你会赢的。。。。