亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.NET Core:將模型綁定到多個選擇列表時出現問題

ASP.NET Core:將模型綁定到多個選擇列表時出現問題

C#
江戶川亂折騰 2023-09-24 15:54:58
我有一個正在處理相關數據的 Web 應用程序,我創建了一個推薦實體,其中包含其他屬性之間的患者、請求者和此推薦的不同顧問。我還有患者、請求者和顧問模型。我已經能夠使用患者和請求者的選擇列表,他們與轉介實體具有 1:n 關系。但是,我與顧問之間存在問題,因為他們具有 n:m 關系,我正在使用多個列表,我可以顯示我的顧問列表并選擇多個顧問,但當我發布數據時,它不綁定到 ReferralConsultants我正在失去它。這是引用控制器的 [get] 編輯操作。var referral = await _context.Referral                .Include(r => r.Patient)                .Include(r => r.Requester)                .Include(r => r.ReferralConsultants)                    .ThenInclude(r => r.Consultant)                .AsNoTracking()                .FirstOrDefaultAsync(r => r.ID == id);            if (referral == null)            {                return NotFound();            }            ViewData["Patients"] = new SelectList(_context.Patient, "ID", "FullName", referral.PatientID);            ViewData["Requesters"] = new SelectList(_context.Requester, "ID", "FullName", referral.RequesterID);            var consultants =  from c in _context.Consultant                                    select new                                    {                                        ConsultantID = c.ID,                                        c.FullName                                    };            ViewData["Consultants"] = new MultiSelectList(consultants, "ConsultantID", "FullName", referral.ReferralConsultants);            return View(referral);這是我的觀點<form asp-action="Edit">            <div asp-validation-summary="ModelOnly" class="text-danger"></div>            <input type="hidden" asp-for="ID" />            <div class="form-group">                <h3>Patient Information</h3>                <label asp-for="PatientID" class="control-label">Patient</label>                <select asp-for="PatientID" class="form-control" asp-items="ViewBag.Patients"></select>                <span asp-validation-for="PatientID" class="text-danger"></span>我唯一缺少的是當我處于[帖子]編輯操作時能夠知道哪些顧問已被選擇。
查看完整描述

2 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

在模型中Referral,將 的類型更改ReferralConsultantsICollection<int>(或任何類型Consultant.ID),對于選擇元素,只有值(ConsultantID在本例中)包含在表單提交中。如果您在瀏覽器中檢查視圖的生成源,這一點就會變得很清楚。


查看完整回答
反對 回復 2023-09-24
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

我最終解決了這個問題,執行以下操作:


我創建 MultiSelectList 項并將其發送到視圖,如下所示。


ReferralsController.cs


var consultants =  from c in _context.Consultant

                                    select new

                                    {

                                        ConsultantID = c.ID,

                                        c.FullName

                                    };


            ViewData["Consultants"] = new MultiSelectList(consultants, "ConsultantID", "FullName", referral.ReferralConsultants.Select(r => r.ConsultantID).ToArray());

            return View(referral);

在視圖中


   <div class="form-group">

        <label class="control-label d-inline">

                    Consultants

        <select multiple name="selectedValues" class="form-control" asp-items="ViewBag.Consultants"></select>

        </label>

   </div>

當我提交表單時,這會將 selectedValues 發送到我的控制器。然后我只需要在編輯[帖子]中獲取這些值并將它們保存在數據庫中。


public async Task<IActionResult> Edit(int id, [Bind("ID,PatientID,RequesterID,DateIssued,DateRequested,Description,Type, Status")] Referral referral, string [] selectedValues)



查看完整回答
反對 回復 2023-09-24
  • 2 回答
  • 0 關注
  • 139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號