دسته بندی ها
21:20 1401/06/18

خطای Cannot implicitly convert type string هنگام بایند کردن کمبوباکس

مشخصات سوال کننده :
کاربر : ahmadikia     امتیاز کاربر : 13     رتبه کاربر : 55
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3362
هوش مصنوعی

پاسخ هوش مصنوعی

خطای شما به این دلیل است که شما در کنترلر یک شیء از نوع رشته (`string`) را به جای لیست `List` به `ViewBag.ListName` اختصاص داده اید. برای رفع این مشکل، باید لیستی از اشیاء را از پایگاه داده بگیرید و به `ViewBag` اضافه کنید. در ادامه، نحوه ی درست انجام این کار را توضیح می دهم.

در کنترلر خود، به جای این کد:

var ListAssisName = _context.assistanceUW.ToString();

باید از کدی استفاده کنید که لیستی از اشیاء را برمی گرداند:

var ListAssisName = _context.assistanceUW.ToList();

حالا شما باید لیست را به `ViewBag` اضافه کنید:

ViewBag.ListName = ListAssisName;

سپس در قسمت ویو، شما باید از `ViewBag.ListName` به درستی استفاده کنید. به جای تبدیل آن به نوع `List`، می توانید به این صورت عمل کنید:

@{ 
    List Assislist = ViewBag.ListName as List;
}

این کد تلاش می کند تا `ViewBag.ListName` را به نوع مناسب تبدیل کند. حالا شما می توانید از `Assislist` در ویو خود استفاده کنید.

در مجموع، مطمین شوید که نوع داده ها با هم سازگار هستند و از `ToList()` برای دریافت لیست از پایگاه داده استفاده کنید تا از این خطاها جلوگیری کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 13:56 1401/06/19

به نظر میرسه شما در این بخش از کدهاتون اشتباه کرده باشید

var ListAssisName = _context.assistanceUW.ToString();

بهتره به جای استفاده از ToString از ToList استفاده کنید. به این صورت

 

var ListAssisName = _context.assistanceUW.ToList();

 

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
1 نظر
ahmadikia : بسیار از راهنمایی شما سپاس گزارم با وجود اصلاح باز هم همان خطا داده می شود

امتیاز کاربر : 13   رتبه کاربر : 55   تاریخ ثبت : 03:45 1401/06/20
پاسخ دهنده : saedbfd 18:00 1401/06/20

احتمال داره در خود View دستورات رو اشتباه نوشته باشید. ممکنه جای ID و Name رو برعکس نوشته باشید.

<div>
     <select asp-items="@(new SelectList(Assislist ,"AssistanceID","AssistanceName"))"></select>
</div>

لینک زیر رو بخونید.

نمایش اطلاعات دیتابیس در تگ Select در Asp.net mvc core

 

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
1 نظر
ahmadikia : ممنون از راهنمایی شما در کنترلر ;() var ListAssisName = _context.assistanceUW.Get().ToList قرار دادم، حل شد بی نهایت سپاس گزارم

امتیاز کاربر : 13   رتبه کاربر : 55   تاریخ ثبت : 11:25 1401/06/21
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود