![](/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.