如何重定向到一个ID还不存在的页面?
本文关键字:不存在 ID 一个 重定向 | 更新日期: 2023-09-27 18:11:08
基本上,我有一个将表单保存到数据库的操作,然后将用户重定向到列表。从这个列表中,用户可以选择一些操作。
这些操作之一是必不可少的,我希望用户在创建对象后直接传递到这个对象,但是,由于第一个对象的ID还不存在,我不确定如何通过传递ID。
例如当前-
//Excerpt
db.form.Add(ViewModel);
db.SaveChanges();
return RedirectToAction("List");
然后我有一个以正常方式拉出的列表,并且有一个用户可以点击进入/stage2/(id)
的链接。
理想情况下,我想把我的代码改成这样:
//Excerpt
db.form.Add(ViewModel);
var newentry = db.SaveChanges();
return RedirectToAction("Stage2", new {id = newentry));
我已经看到以这种方式调用SaveChanges()
会返回一个int,但是,我已经尝试过了,它似乎没有拉对象的ID,我尝试了一些其他的事情,但不确定使用的语法。
我所能想到的就是分离对象,然后再次选择它并返回,但是,是否有更"圆滑"或直接的方法来做到这一点?
编辑-我想我已经解决了这个问题…但是,我需要等待7个小时,直到我可以发布一个答案。
除非我弄错了——如果是这样的话,请有人告诉我!看起来实体框架会自动更新你传递给它的对象。当我传递给它一个form
对象时,在调用SaveChanges
时,它会自动设置表单对象的ID。
所以,我所需要的是:
//Excerpt
db.form.Add(ViewModel);
return RedirectToAction("Stage2", new {id = ViewModel.id));
试试这个:
form ViewModel = new form();
// Add all your operations on the ViewModel object
db.AddToform(ViewModel);
db.SaveChanges();
//int id = ViewModel.id;
return RedirectToAction("Stage2", new {id = ViewModel.id));
调用"SaveChanges"方法后,您的ViewModel id属性得到更新
除非我弄错了-在这种情况下,请有人告诉我!看起来实体框架会自动更新你传递给它的对象。
当我传递给它一个表单对象时,在调用SaveChanges时,它会自动设置表单对象的ID。
所以,我所需要的是:
//Excerpt
db.form.Add(ViewModel);
return RedirectToAction("Stage2", new {id = ViewModel.id));