سلام دوستان من یه 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>'
کد ویو و کنترلر را قرار دهید
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" />
چرا 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 );
}
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 ارور سینتکسی میده:
متن گویاست
میگه دو مدل تفاوت دارند
فضاهای نام رو ببینید تفاوت دارند
من لیست رو به اینصورت تعریف کردم:
public List<SelectListItem> List { get; set; }
و items رو بصورت زیر: List<SelectListItem> items = new List<SelectListItem>();
نمیدونم چطور این دوتا رو باید از یه نوع انتخاب کنم.ممنون میشم راهنمایی کنید
فضای نام را ابتدای نوع بزارید تا اصتباه نشه
متل ارور را ببینید دو لیست از نظر نوع با هم تفاوت دارند
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)