Veritabanımdaki, ExamIDs içeren bir DropdownList içeren bir girdinin oluşturulmuş bir iskelet görünümü var. Buradaki fikir, bir Kaydın bir Sınav için bir GUID içerdiği DB'deki Kayıtlar tablosunda yeni bir kayıt oluşturmaktır (ExamID). Bu listede şu anda Sınavlar'daki GUID'ler var.ASP.NET MVC Yabancı anahtarla bir dropdownList'i yerleştirme
Sınavların kendilerinin bir adı yoktur, ancak başka bir tabloda DB (CourseID) içindeki bir yabancı anahtar aracılığıyla bir Kursa (bir adı olan) bağlanır.
Neye ihtiyacım var, sınava giren Derslerin isimleri ile doldurulmuş bir listedir, ancak yeni kaydı oluştururken doğru ExamID'yi ayrıştırmaktadır.
C#/ASP.NET'te acemi olduğum için ViewBags ve lambda ifadeleriyle uğraşıyordum, bunların hiçbiri işe yaramıyordu. Bir noktada ben Kursları için yeni Viewbar yapım ve diğerinden ExamID gibi bir tablodan courseID kaydetmek istedim çünkü bir tabloda, bir DB hataya neden doğal DropDownList ancak hangi courseID olduğunu ayrıştırma bunu sanıyordum bir anahtar değil.
Denetleyici:
// 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);
}
Görünüm:
<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>
biraz ben sonra görünümünde ExamID yerine GUID bağlantılı Ders Adı gösteriyor ediyorum.
sen, Sınav yabancı anahtar ile Course bağlıdır söylemek bu biridir Birçoğu, çok, bire bir? – JamieD77
@ JamieD77 derstir 1 --- * Sınav ilişkisi. –
nasıl her ders sadece bir sınav olmadıkça otomatik olarak kodu kullanmayı deneyin vermedi .., sadece açılan – JamieD77