![](/img/trans.png)
[英]Unable to locate element in Selenium using ID. Able to get the element on one page. However unable to locate when I navigate on another page
[英]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将保存到要保存的对象的实例中。
如果您使用的是实体框架,它将在数据插入数据库时持久保存对象自动生成的ID。
通常,实体框架执行SELECT SCOPE_IDENTITY()以获得自动生成的ID。
因此,您应该能够按以下方式获取ID。
int Id= item.ID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.