gpt4 book ai didi

c# - ASP.NET MVC 使用外键填充下拉列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:36 25 4
gpt4 key购买 nike

<分区>

我的数据库中有一个条目的脚手架创建 View ,其中包含一个包含 ExamID 的 DropdownList。这里的想法是在数据库的 Registrations 表中创建一条新记录,其中 Registration 包含考试的 GUID (ExamID)。该列表当前填充了来自考试的 GUID。

考试本身没有名称,但通过数据库中的外键 (CourseID) 链接到另一个表中的类(class)(有名称)。

我需要的是一个列表,其中填充了与考试相关的类(class)名称,但在您创建新记录时仍会解析正确的 ExamID。

因为我是 C#/ASP.NET 的新手,所以我一直在研究 ViewBags 和 lambda 表达式,但都不起作用。有一次我以为我通过为类(class)创建一个新的 ViewBar 并将其解析为 DropdownList 来获得它,但这自然会导致数据库错误,因为它想将一个表中的 CourseID 保存为另一个表中的 ExamID,在 CourseID 为不是 key 。

Controller :

    // GET: Registrations/Create
public ActionResult Create()
{
ViewBag.ExamId = new SelectList(db.Exams, "Id", "Id");
return View();
}

// POST: Registrations/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,ExamId,StudentId,Deleted,TimeStamp")] Registration registration)
{
if (ModelState.IsValid)
{
registration.Id = Guid.NewGuid();
registration.StudentId = User.Identity.GetUserId();
registration.TimeStamp = DateTime.Now;
db.Registrations.Add(registration);
db.SaveChanges();
return RedirectToAction("Index");
}

ViewBag.StudentId = new SelectList(db.AspNetUsers, "Id", "Firstname", registration.StudentId);
ViewBag.ExamId = new SelectList(db.Exams, "Id", "Name", registration.ExamId);
return View(registration);
}

View :

 <div class="form-horizontal">
<h4>Kies een tentamen</h4>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.ExamId, "Vak", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ExamId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ExamId, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<div>
<input type="submit" value="Schrijf in" class="btn btn-primary"/>
</div>
</div>
</div>
</div>

我想要的是在 View 中显示链接的类(class)名称而不是 ExamID 的 GUID。

25 4 0
文章推荐: c# - Json转换器 : Return a single object or a List based on inbound JSON