مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

laleh_456

عضویت از 1395/10/06

خطای Cannot implicitly convert type 'System.Collections.Generic.List

  • دوشنبه 4 اردیبهشت 1396
  • 12:14
تشکر میکنم

سلام دوستان من یه viewdatamodel  دارم. که یه لیست جنریک در اون تعریف کردم.

public List<SelectListItem> List { get; set; }

حالا در کنترلر یه لیست دارم بصورت

  List<SelectListItem> items = new List<SelectListItem>(); که میخام اونو بصورت زیر به مدلم پاس بدم

  model.List =items.;

ولی خطای زیر رو دارم من چطور میتونم این cast رو انجام بدم؟

Error 1 Cannot implicitly convert type 'System.Collections.Generic.List<System.Web.Mvc.SelectListItem>' to 'System.Collections.Generic.List<System.Web.WebPages.Html.SelectListItem>'
    

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 4 اردیبهشت 1396
  • 12:20

کد ویو و کنترلر را قرار دهید

کاربر سایت

laleh_456

عضویت از 1395/10/06

  • دوشنبه 4 اردیبهشت 1396
  • 13:19
 foodviewmodel:
public class AddFoodViewModel
    {
Controller

        public List<SelectListItem> List { get; set; }
       
    }
  public ActionResult AddFood()

        {
            var model = new AddFoodViewModel();
            List<SelectListItem> items = new List<SelectListItem>();
            var list = db.GetStuff();
            foreach (var item in list)
            {
                items.Add(new SelectListItem
                          {
                              Text = item.Name.ToString(),
                              Value = item.Id.ToString()
                          });
            }
        ;   model.List =items.
            return View();
         
        }

اینم از ویو:

@model Foods.ViewModels.Admin.AddFoodViewModel

@{
    Layout = null;
}

<!DOCTYPE html>

<html>

<body>
    <table>
        <tr>
            <td>

                    @using (Html.BeginForm("AddFood", "Admin", FormMethod.Post))
                    {
                        <table>
                            @for (int i = 0; i < Model.List.Count(); i++)
                            {
            
                                <tr>
                                    <td>
                                        @Html.CheckBoxFor(m => m.List[i].Selected)
                                    </td>
                                    <td>
                                        @Html.DisplayFor(m => m.List[i].Text)
                                        @Html.HiddenFor(m => m.List[i].Value)
                                        @Html.HiddenFor(m => m.List[i].Text)
                                    </td>
                                </tr>
                            }
                        </table>
                        <br />
  
                        <input type="submit" value="Submit" />

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 4 اردیبهشت 1396
  • 13:22

چرا Return خالی است ؟

مدل رو به صفحه ارسال نکردید برای همینه ارور میده

 public ActionResult AddFood()
 
        {
            var model = new AddFoodViewModel();
            List<SelectListItem> items = new List<SelectListItem>();
            var list = db.GetStuff();
            foreach (var item in list)
            {
                items.Add(new SelectListItem
                          {
                              Text = item.Name.ToString(),
                              Value = item.Id.ToString()
                          });
            }
        ;   model.List =items.
            return View(model );
          
        }

کاربر سایت

laleh_456

عضویت از 1395/10/06

  • دوشنبه 4 اردیبهشت 1396
  • 13:38
Error 1 Cannot implicitly convert type 'System.Collections.Generic.List<System.Web.Mvc.SelectListItem>' to 'System.Collections.Generic.List<System.Web.WebPages.Html.SelectListItem>' 

ممنون.بله من میخام مدل رو به ویو برگردونم اما خط قبل از return ارور سینتکسی میده:

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 4 اردیبهشت 1396
  • 13:40

متن گویاست

میگه دو مدل تفاوت دارند

فضاهای نام رو ببینید تفاوت دارند

کاربر سایت

laleh_456

عضویت از 1395/10/06

  • دوشنبه 4 اردیبهشت 1396
  • 13:45

من لیست رو به اینصورت تعریف کردم:

public List<SelectListItem> List { get; set; }

و items رو بصورت زیر:  List<SelectListItem> items = new List<SelectListItem>();

​نمیدونم چطور این دوتا رو باید از یه نوع انتخاب کنم.ممنون میشم راهنمایی کنید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 4 اردیبهشت 1396
  • 13:46

فضای نام را ابتدای نوع بزارید تا اصتباه نشه

متل ارور را ببینید دو لیست از نظر نوع با هم تفاوت دارند

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)