Получение нулевого значения из списка выбора (выпадающий список)

Попытка получить идентификатор выбранного элемента. Но я получаю от него нулевое значение.

Это мой взгляд на создание комнаты, где можно выбрать тип комнаты.

<select asp-for="RoomType" asp-items="@(new SelectList(@ViewBag.roomType, "Id", "Type"))" class="form-control">
    <option>--Select--</option>
</select>

это мои модели

public class RoomModel
{
    public int Id { get; set; }
    public string RoomName { get; set; }
    public RoomTypeViewModel RoomType { get; set; }
    public float Price { get; set; }
}
public class RoomTypeViewModel
{
    public int Id { get; set; }
    public string Type { get; set; }
}

Контроллер

[HttpGet]
public IActionResult CreateRoom()
{
    ViewBag.roomType = _context.RoomType.ToList();
    return View();
}

person Elias Hridoy    schedule 17.08.2019    source источник


Ответы (1)


У вас должен быть элемент, который вы хотите поместить в раскрывающийся список, подобный этому.

Контроллер.cs

public class RoomController : Controller
{
     private readyonly RoomTypeContext _contextRoomType;
}

public RoomController(RoomTypeContext contextRoomType)
{
     _contextRoomType = contextRoomType;
}

public IActionResult Create()
{
     List<RoomType> roomTypes = new List<RoomType>();
     roomTypes = (from room in _contextRoomType.roomTypes select room).ToList();
     roomTypes.Insert(0, new RoomType { });
     ViewBag.ListOfRoomTypes = roomTypes;
}

View.cshtml

<select asp-for="RoomType" 
        class="form-control form-control-sm" 
        asp-items="@(new SelectList(@ViewBag.ListOfRoomTypes , "Id","Type"))">
</select>
person Jose Baleros Jr    schedule 03.09.2019