我有以下模型:
public class ActivityType
{
[Key] 。
public int ActivityTypeId { get; set; }
public string ActivityTypeName { get; set; }
}
public class ActivitySubType
{
[Key] 。
public int ActivitySubTypeId { get; set; }
public string ActivitySubTypeName { get; set; }
[ForeignKey("ActivityType")]
public int ActivityTypeId { get; set; }
public virtual ActivityType 活動型別 { get; set; }
}
public class ActivityRecord
{
[Key] 。
public int ActivityRecordId { get; set; }
public string ActivityName { get; set; }
[ForeignKey("ActivitySubType")]
public int ActivitySubTypeId { get; set; }
public virtualActivitySubType ActivitySubType { get; set; }
然后從模型ActivityRecord,我有一個控制器來保存到資料庫。我正在使用腳手架控制器來自動生成。在Create視圖中,我創建了一個層疊的下拉代碼。當ActivityType被選中時,下拉ActivitySubType將根據資料庫的資料生成專案。它將保存到資料庫中(成功)。
情況是,當我們選擇ActivitySubType時,它將根據資料庫中的資料生成專案。
情況是,當我試圖編輯記錄的時候。我怎樣才能根據ActivitySubTypeId的值在ActivityType的下拉選單中系結ActivityTypeId。我已經用下面的代碼得到了它:
public async Task< IActionResult> Edit(int? id)
{
var getActivityTypeId = (from a in _db.ActivityRecords
join b in _db.ActivitySubTypes ON a.ActivitySubTypeId equals b.ActivitySubTypeId
join c in _db.ActivityTypes ON b.ActivityTypeId equals c.ActivityTypeId
where a.ActivitySubType == id
select new {
b.ActivityTypeId
}
).FirstOrDefault()。
var activityTypeList = (from a in _db.ActivityTypes
select new SelectListItem()
{
Text = a.ActivityTypeName, Value = a.ActivityTypeId.ToString()
}
).ToList()。
activityTypeList.Insert(0, new SelectListItem()
{
文本 = "選擇..."。
值 = ""。
});
ViewBag.ActivityTypeDropList = activityTypeList。
在下拉選單上:
< select id="ActivityTypeId" class="form-control form-control-sm" asp-items="@(new SelectList(ViewBag. ActivityTypeDropList,"Value", "Text")">
</select>。
我如何將getActivityTypeId的結果放入ActivityType的下拉選單中作為selectedValue?或者是否有其他的方法來實作這個目標?
謝謝你。
uj5u.com熱心網友回復:
好吧,經過試驗和錯誤。我找到了答案:
關于視圖:
<select class="form-control form-control-sm"/span> asp-items="ViewBag. ActivityTypeId"></select>
在控制器上:
var selectedValue = (from a in _db.ActivityRecords
join b in _db.ActivitySubTypes on a.ActivitySubTypeId equals b.ActivitySubTypeId
join c in _db.ActivityTypes on b.ActivityTypeId equals c.ActivityTypeId
where a.ActivityRecordId == id
selectnew
{
c.ActivityTypeId
}
).FirstOrDefault()。
ViewData["ActivityTypeId"] = new SelectList(_db. ActivityTypes, "ActivityTypeId", "ActivityTypeName", selectedValue.ActivityTypeId.ToString() 。)
感謝您的關注。
干杯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/309891.html
標籤:
