我正在嘗試創建樹視圖選單,但它無法正常作業。有 3 個不同的存盤程序,第一個用于家庭(父),第二個用于類別(子),第三個用于報告(孫)。Families SP 將用戶 ID 作為引數,并且似乎作業正常。類別 SP 采用用戶 ID 和家庭 ID,第三個采用用戶 ID、家庭 ID 和類別 ID。運行代碼時,它會顯示系列,并在下方顯示 1 報告名稱。如果我從 foreach 回圈中洗掉呼叫存盤程序的代碼行,它會回傳 1 個系列的類別,盡管它顯示在所有系列上。
如果我在控制器上添加一個斷點,它將通過回圈并回傳正確的資料,所以我認為問題在于它的顯示方式。 [顯示資料] 在這個螢屏截圖上可以看到資料是如何正在顯示,正在從家庭 SP 和 WebBooking 重新調整 EPOS 和 RES,這是一個類別
FAMILIES
|
|--CATEGORIES
|
|
|---REPORT_NAME
先感謝您!
在控制器上,我正在呼叫每個存盤程序,如果使用斷點測驗,所有應該回傳的資料都將正確回傳。也許我的問題的解決方案是用控制器回傳的資料填充視圖,但是我不知道該怎么做?
控制器
foreach (var cat in model.familiesReport = context.P_Mob_Get_ReportFamilies(user).ToList())
{
Console.WriteLine(cat.FamilyName);
foreach (var name in model.CategoriesReport = context.P_Mob_Get_ReportCategories(user, cat.FamilyID).ToList())
{
Console.WriteLine(name.Category);
foreach (var test in model.namesReport = context.P_Mob_Get_ReportNames(user, cat.FamilyID, name.CategoryID).ToList())
{
Console.WriteLine(test.ReportName);
}
}
我有一個視圖模型,它有 3 個 SP_Results(EF 中的復雜型別)。在視圖中,我將瀏覽每一個 Complex 型別并回傳每個型別的名稱,(Family、Category、Name)
看法
<ul>
@foreach (var family in Model.familiesReport)
{
<a href="#" class="menu_fam">@family.FamilyName</a>
<ul class="">
@foreach (var cat in Model.CategoriesReport)
{
<li href="#" class=""><a class="menu_cat"> @cat.Category</a></li>
<ul class="">
@foreach (var name in Model.namesReport)
{
<li href="#" class=""><a class="menu_name"> @name.ReportName</a></li>
}
</ul>
}
</ul>
}
</ul>
uj5u.com熱心網友回復:
我終于找到了解決方案。我創建了一個新模型,而不是將存盤程序的結果保存在 EF 生成的復雜型別中,而是將它們保存在這個模型中。模型中的每個類都有一個串列,用于保存資料。如下圖所示。模型:
public class FamilyResultResponse
{
public List<Family> Families { get; set; }
public List<Sites> SitesGet { get; set; }
}
public class Family
{
public Nullable<int> FamilyID { get; set; }
public string FamilyName { get; set; }
public List<FamilyResultCat> FamilyCat { get; set; }
}
public class FamilyResultCat
{
public Nullable<int> familyid { get; set; }
public Nullable<int> CategoryID { get; set; }
public string Category { get; set; }
public int Allowed { get; set; }
public List<FamilyResulReportByCategory> FamilCatRep { get; set; }
}
public class FamilyResulReportByCategory
{
public Nullable<int> ReportID { get; set; }
public Nullable<int> categoryid { get; set; }
public string ReportName { get; set; }
}
控制器:遍歷串列
public ActionResult Index(Guid? userID\)
{
var model = new FamilyResultResponse();
model.Families=new List<Family>();
SPMenuModel modelSPMEnu = new SPMenuModel();
foreach (var f in context.P_Mob_Get_ReportFamilies(userID).ToList())
{
var fam = new Family();
fam.FamilyID = f.FamilyID;
fam.FamilyName= f.FamilyName;
fam.FamilyCat = new List<FamilyResultCat>();
Console.WriteLine(f.FamilyName);
foreach (var c in context.P_Mob_Get_ReportCategories(userID, f.FamilyID).ToList())
{
var famcat = new FamilyResultCat();
famcat.CategoryID = c.CategoryID;
famcat.Category = c.Category;
famcat.Allowed = c.Allowed;
famcat.FamilCatRep= new List<FamilyResulReportByCategory>();
Console.WriteLine(c.Category);
foreach (var n in context.P_Mob_Get_ReportNames(userID, f.FamilyID, c.CategoryID).ToList())
{
var famcatrep = new FamilyResulReportByCategory();
famcatrep.ReportID = n.ReportID;
famcatrep.ReportName = n.ReportName;
famcatrep.categoryid = n.categoryid;
Console.WriteLine(n.ReportName);
famcat.FamilCatRep.Add(famcatrep);
}
fam.FamilyCat.Add(famcat);
}
model.Families.Add(fam);
}
modelSPMEnu.familyResult = model;
return View(model);
看法
@foreach (var fam in Model.Families)
{
<a href="#" class="menu_fam"> @fam.FamilyName</a>
<ul class="">
@foreach (var cat in fam.FamilyCat)
{
<li href="#" class=""><a class="menu_cat"> @cat.Category </a></li>
foreach (var name in cat.FamilCatRep)
{
<ul class="">
<li class=""><a>@name.ReportName</a></li>
</ul>
}
}
</ul>
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/313346.html
標籤:entity-framework model-view-controller
上一篇:在進入資料庫時??設定值
