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

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

کاربر سایت

rooz450

عضویت از 1392/08/12

خطای .....The type arguments for method 'System.Web.Mvc

  • پنجشنبه 5 آذر 1394
  • 16:49
تشکر میکنم

با سلام

در نظر دارم با حلقه foreach یک dropdwonlist درست کنم  اما خطای زیز نمایش داده می شود 

The type arguments for method 'System.Web.Mvc.Html.SelectExtensions.DropDownListFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, string)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

 

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

@model IEnumerable<ClassLibrary1.dt.city>

@foreach (var item in Model.Where(i=>i.Parentid=="0").ToList()) {
   @Html.DropDownListFor(item.Id, new SelectList(Model, "Id", "Name"), "------------------")
}


namespace WebApplication7.ViewModel
{
    public class ali
    {
        public IEnumerable<city> cit { get; set; }
    }
}


    public ActionResult Index()
        {
            adsingwebsiteContainer t = new adsingwebsiteContainer();
            ali bu = new ali();
            bu.cit = t.cities.ToList();

            return View(bu);
        }

علت خطا چیست چگونه خطا را برطرف کنم

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

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

اصغر

عضویت از 1394/03/16

  • جمعه 6 آذر 1394
  • 17:27

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

 

با کدی هم که برای ایجاد دراپ دان نوشتید شما در واقع به تعداد عناصر درون حلقه دراپ دان دارید ایجاد می کنید.برای ایجاد دراپ دان نیازی به foreach ندارید.

وقتی از helper برای ایجاد دراپ دان استفاده می کنید باید به شیوه زیر عمل کنید : 

 


     <div class="form-group">
                        @Html.LabelFor(m => m.State)
                        @Html.DropDownListFor(m => m.State, // 1. Store selected value in Model.State;
                                                            // when page is rendered after postback,
                                                            // take selected value from Model.State.

                                              // 2. Take list of values from Model.States
                                              Model.States, 

                                              // 3. Text for the first 'default' option
                                              "- Please select a state -", 

                                              //4. A class name to assign to <select> tag
                                              new { @class = "form-control" })
                    </div>


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

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

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

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

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