Я использую ASP.NET Core 1.0 и EF Core 1.0 и имею следующий класс кода в моей базе данных SQL.Как заполнить Select taghelper в Razor, используя данные из таблицы базы данных SQL
namespace GigHub.Models
{
public class Genre
{
public byte Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
}
}
У меня есть следующий класс ViewModel я использую в форме представления Razor:
namespace GigHub.ViewModels
{
public class GigFormViewModel
{
public string Venue { get; set; }
public string Date { get; set; }
public string Time { get; set; }
public List<Genre> Genres { get; set; }
}
}
У меня также есть этот контроллер:
using GigHub.Data;
using GigHub.ViewModels;
using Microsoft.AspNetCore.Mvc;
namespace GigHub.Controllers
{
public class GigsController : Controller
{
private readonly ApplicationDbContext _context;
public GigsController(ApplicationDbContext context)
{
_context = context;
}
public IActionResult Create()
{
var vm = new GigFormViewModel();
// Need to get my Genre list from the DbSet<Genre> in my database context injected above
// into the GigFormViewModel for the Select taghelper to consume
return View(vm);
}
}
}
Я мой взгляд Бритва установить до используйте ViewModel отлично, но я не уверен, как установить код taghelper ниже, чтобы получить доступ к свойству Genre.
<div class="form-group">
<label asp-for="????" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="????" asp-items="????" class="form-control"></select>
<span asp-validation-for="????" class="text-danger" />
</div>
</div>
Я в основном возникают проблемы grokking, как получить мой список жанров из моей базы данных в свойство ViewModel в форме, что Выбрать taghelper АСП-элементы = может потребить. Множество пробных ошибок & ошибок, которые я пережил, обычно приводят к проблемам с конверсиями, идущими от генерических Список <> Тип для MVC SelectListItem Тип. Я подозреваю, что мой класс ViewModel Genre нуждается в настройке, но мои исследования до сих пор приводили только к статьям, охватывающим предыдущие версии ASP.NET и Entity Framework, и я изо всех сил пытаюсь сопоставить их с ядром ASP.NET 1.0 RC2 и EF Core 1.0.
'<выберите осина-для =«ИмяПоля»АСП-элементы =«ViewBag.OptionsCollection»>' –
Неужели нет способа избежать ViewBag и получить список из ViewModel в виде списка для taghelper по строки asp-items = "Model.MyGenreListHere"? Это где я иду не так? –
Просто используйте поле в ViewModel. Я отправлю пример из документации ASP.NET. –