MVC核心实体框架核心返回行但没有数据

时间:2018-04-17 19:45:20

标签: asp.net-mvc asp.net-core-mvc entity-framework-core

我试图在MVC中创建一个下拉弓,但它似乎并没有将任何数据填充到其中。数据库表有数千行,但我似乎无法显示任何行。

模型

    public class FlSessions
{
    public FlSessions()
    {
        FlBookings = new HashSet<FlBookings>();
    }

    public int FsId { get; set; }
    public int? FsOldid { get; set; }
    public string FsAyrc { get; set; }
    public string FsCentre { get; set; }
    public string FsType { get; set; }
    public DateTime? FsDate { get; set; }
    public DateTime? FsStart { get; set; }
    public DateTime? FsEnd { get; set; }
    public decimal? FsDuration { get; set; }
    public int? FsPlaces { get; set; }
    public string FsNotes { get; set; }
    public string FsDead { get; set; }
    public string FsCreatedBy { get; set; }
    public DateTime? FsCreated { get; set; }
    public string FsSessionText { get; set; }
    public virtual FlCentres FsCentreNavigation { get; set; }
    public virtual FlSessionTypes FsTypeNavigation { get; set; }
    public ICollection<FlBookings> FlBookings { get; set; }
}

控制器

    public class BookingController : Controller
{
    public FlexibleLearningTestContext _context;
    public BookingController(FlexibleLearningTestContext context)
    {
        _context = context;
    }
    public IActionResult IndexTest()
    {
        ViewBag.sessions = _context.FlSessions.ToList();
        return View();
    }
}

查看

 @{
 Layout = "_Layout";
 }
 <form>
 <label asp-for="FsSessionText"></label>
 <select id="SelectedSession1" name="FsId1" asp-for="FsSessionText" asp-items="@(new SelectList(ViewBag.sessions,"FsId","FsSessionText" ))">
    <option>Select Session...</option>
 </select>
 </form>

1 个答案:

答案 0 :(得分:0)

这不是最好的实践 如果您想要最佳实践,请创建包含List的视图模型 然后将其填入控制器,然后将其传递给查看并使用asp-items。

尝试使用此

ViewBag.sessions=_context.FlSessions.Select(c => new SelectListItem()
          {
              Text = c.FsSessionText,
              Value = c.FsId.ToString(),
          }).ToList();

然后在视图中写下代码

<select id="SelectedSession1" name="FsId1" asp-for="FsSessionText" asp-items="@ViewBag.sessions">