我试图在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>
答案 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">