插入重定向到编辑页面后。无法获取 ID
After insert redirect to edit page. Unable to get ID
我在插入新项目的 Category_New.aspx 中有 FormView。它被插入在下面的方法中。
public void myForm_InsertItem()
{
var item = new A.Models.Category();
CategoryContext db = new CategoryContext();
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here
db.Category.Add(item);
db.SaveChanges();
//item.CategoryID is present from this point
}
}
我想将用户重定向到用于编辑该项目的页面。该页面是 Category_Edit.aspx.
如何在方法 myForm_ItemInserted 中获取插入项目的 ID,以便下面的代码可以工作?
protected void myForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Response.RedirectToRoute(GetRouteUrl("CategoryEdit", new {CategoryID = /* how to get ID of inserted item??? */}));
}
如何知道插入项的ID?
你可能会做的是有一个全局的int类型变量来保存新类别Id的值,然后你可以在你的重定向方法中传递它。
private int newCategoryId;
public void myForm_InsertItem()
{
var item = new A.Models.Category();
CategoryContext db = new CategoryContext();
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here
db.Category.Add(item);
db.SaveChanges();
//item.CategoryID is present from this point
newCategoryId = item.CategoryId; // presumably it's called categoryId
}
}
protected void myForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Response.RedirectToRoute(GetRouteUrl("CategoryEdit", new {CategoryID = newCategoryId}));
}
这里的关键是插入的时候,将生成的ID保存到被保存对象的实例中。
如果您使用的是entity framework,它将在数据插入数据库时持久保存对象自动生成的id。
一般entity framework执行SELECTSCOPE_IDENTITY()获取自动生成的Ids。
因此您应该能够按如下方式获取插入的 ID。
int Id= item.ID;
我在插入新项目的 Category_New.aspx 中有 FormView。它被插入在下面的方法中。
public void myForm_InsertItem()
{
var item = new A.Models.Category();
CategoryContext db = new CategoryContext();
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here
db.Category.Add(item);
db.SaveChanges();
//item.CategoryID is present from this point
}
}
我想将用户重定向到用于编辑该项目的页面。该页面是 Category_Edit.aspx.
如何在方法 myForm_ItemInserted 中获取插入项目的 ID,以便下面的代码可以工作?
protected void myForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Response.RedirectToRoute(GetRouteUrl("CategoryEdit", new {CategoryID = /* how to get ID of inserted item??? */}));
}
如何知道插入项的ID?
你可能会做的是有一个全局的int类型变量来保存新类别Id的值,然后你可以在你的重定向方法中传递它。
private int newCategoryId;
public void myForm_InsertItem()
{
var item = new A.Models.Category();
CategoryContext db = new CategoryContext();
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here
db.Category.Add(item);
db.SaveChanges();
//item.CategoryID is present from this point
newCategoryId = item.CategoryId; // presumably it's called categoryId
}
}
protected void myForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Response.RedirectToRoute(GetRouteUrl("CategoryEdit", new {CategoryID = newCategoryId}));
}
这里的关键是插入的时候,将生成的ID保存到被保存对象的实例中。
如果您使用的是entity framework,它将在数据插入数据库时持久保存对象自动生成的id。
一般entity framework执行SELECTSCOPE_IDENTITY()获取自动生成的Ids。
因此您应该能够按如下方式获取插入的 ID。
int Id= item.ID;