Member 10033441 Ответов: 1

Viewdata элемент с ключом 'имя' - это типа 'System.строка', но должно иметь тип 'тип IEnumerable&ЛТ;selectlistitem&ГТ;'.


// GET: /Account/Register
[AllowAnonymous]
public ActionResult Register()
{
    ViewBag.Name = new SelectList(context.Roles.ToList(), "Name", "Name");
    return View();
}


Зарегистрироваться.cshtml по
-----------------
<!--Select the Role Type for the User-->
    <div class="form-group">
        @Html.Label("Select Your User Type", new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @*@Html.DropDownList("Name")*@
    @*@Html.DropDownList("Name", (SelectList)ViewBag.Name, "--Choose Role--")*@
            @Html.DropDownList("Name", (SelectList)ViewBag.Name, "--Choose Role--")
            
        </div>
    </div>
    <!--Ends Here-->


Что я уже пробовал:

The ViewData item that has the key 'Name' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.

Karthik_Mahalingam

протестировали ваш код, он отлично работает.
возможно, вы что-то упускаете

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

обратитесь к этому и исправьте это в своем коде

Контроллер

public class Role
   {
       public string Name { get; set; }
   }


   public class HomeController : Controller
   {
       public ActionResult Index()
       {
           List<Role> lst = new List<Role>();
           lst.Add(new Role() { Name = "Admin" });
           lst.Add(new Role() { Name = "Master" });
           lst.Add(new Role() { Name = "user" });
           ViewBag.Name = new SelectList(lst, "Name", "Name");
           return View();
       }

   }

Смотреть

@Html.DropDownList("Name", (SelectList)ViewBag.Name, "--Choose Role--")