我有這段代碼,我在其中使用foreach回圈迭代物件
public ActionResult userDocs()
{
var user = Server.HtmlEncode(Request.Cookies["UserName"].Value);
var role = db.userdetails.FirstOrDefault(s => s.UserName == user).FullName;
var test = "kokulchellamuthu1programmer";
var find = db.ApplySchedule.Where(x => x.CC.Contains(test)).ToList();
foreach(var i in find)
{
var res = db.docinfo.Where(z => z.RequestID == i.BookingID).ToList();
}
return View(res);
}
現在我想回傳res變數 toview以便向用戶顯示匹配的可下載檔案,由于代碼無法編譯,我無法將其回傳到視圖,有人可以幫我嗎?
謝謝。
uj5u.com熱心網友回復:
您已res在foreach塊內定義了變數,因此在您的return res;陳述句中無法訪問它。把它res從那里拿出來,看起來像這樣:
// Replace DocInfo with the correct type name of the db.docinfo model
var res = new List<DocInfo>();
foreach (var i in find)
{
var entities = db.docinfo.Where(z => z.RequestID == i.BookingID).ToList();
res.AddRange(entities);
}
return View(res);
但是,我認為您甚至不需要foreach. 你可以只做:
var res = db.docinfo.Where(z => find.Any(f => f.BookingID == z.RequestID)).ToList();
如果這導致無效的操作例外或類似情況,那么答案的第一部分仍應解決問題。
uj5u.com熱心網友回復:
您必須在 Foreach 之前定義一個空串列,并將該專案添加到定義的串列中,為找到的每個專案等于您的條件。根據下面的代碼:
List<string> ids = new List<string>();
foreach(var i in find)
{
var id = db.docinfo.Where(z => z.RequestID == i.BookingID);
ids.Add(id);
}
return ids;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/336524.html
標籤:C# asp.net asp.net-mvc
