В представлении Создать администраторы могут создать новое блюдо и выбрать его тип из выпадающего списка (DishTypes поступают из базы данных). Проблема в том, что я не знаю, как спроектировать DishesViewModel
, DishesController
и выпадающий список в представлении Create
.
Вот Блюда модель
public class Dishes
{
[Key]
[Required]
public int DishID { get; set; }
[Required]
public string Dishname { get; set; }
public int DishTypeID { get; set; }
[ForeignKey("DishTypeID")]
public virtual DishTypes DishTypes { get; set; }
}
Вот DishTypes модель
public class DishTypes
{
[Required]
public int DishTypeID { get; set; }
[Required]
public string DishTypeName { get; set; }
}
Это моя текущая модель представления Dishes (я использую Automapoper для сопоставления их с моделями доменов)
public class DishesVM
{
[Required]
public string DishName{ get; set; }
[Required]
public int DishTypeID{ get; set; }
[Required]
public string DishTypeName { get; set; }
}
Это DishesController
public class DishesController: Controller
{
[HttpGet]
public async Task<IActionResult> Create()
{
// it should pass a list of dishTypes to my view so when admins create a dish they can choose dishtype from a dropdown list
//I down't want to use ViewBag or ViewData
return View()
}
}
Вот Создать посмотреть
@model DataLayers.Models.ViewModels.DishesVM
<form asp-controller="Dishes" asp-action="Create">
<label class="label" asp-for="Dishname"></label>
<input class="input" type="text" asp-for="Dishname">
//a drop down list, which enables admins choose dishtypes, is needed here
</form
И, наконец, это DishRepository
public class DishRepository
{
public async Task<IEnumerable<Dishes>> GetAllDishesAsync()
{
return await _RepositoryContext.Set<Dishes>().ToListAsync();
}
}
Не стесняйтесь менять все, как хотите.