我们仍然忙于我们的学校项目,我们遇到了一些问题。
我们有一个成员类和一个朋友类 在朋友类中,我们有memberID& FriendID作为复合主键。 所以memberID引用了memberclass中的MemberID,但FriendID也引用了memberclass中的这个memberID,因为一个Friend必须是一个成员。
因此,在我们的观点中,我们可以从下拉列表中选择成员可以与另一个成员和存储的朋友。
但是,如果我们想要编辑这种友谊,并希望更改成员的朋友或更改这两个名称。我们无法在下拉列表中看到当前的朋友,尽管我们可以在下拉列表中看到我们想要更改的成员。
这里有一些截图:
第一个屏幕截图是索引视图,它为我们提供了会员和朋友(他们也是会员)的ID 所以表名是:人 - 朋友
如果我们现在看编辑视图,我们应该看到Person:Jan(PersonID = 1)和vriend遇到(朋友):Jeanine(PersonID2)
因此我们已经可以通过使用视图包并将其添加到视图来获取成员1(Jan)的名称:
public ActionResult Edit(int id, int idTwo)
{
ViewBag.PersoonID = new SelectList(PersoonBLL.GetAll(), "PersoonID", "Naam");
ViewBag.VriendID = new SelectList(PersoonBLL.GetAll(), PersoonBLL.GetById(idTwo).Naam.ToString());
//ViewBag.VriendID = new SelectList(vriendschapBLL.GetAll(), "VriendID", "PersoonBLL.GetAll().Naam");
Vriendschap vriendschap = vriendschapBLL.GetByTwoId(id, idTwo);
if (vriendschap == null)
{
return HttpNotFound();
}
return View(vriendschap);
}
这是视图中的代码:
<div class="editor-label">
<%: Html.LabelFor(model => model.PersoonID) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("PersoonID") %>
<%: Html.ValidationMessageFor(model => model.PersoonID) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.VriendID) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("VriendID") %>
<%: Html.ValidationMessageFor(model => model.VriendID) %>
</div>
最初我们有成员2的索引是正确的但我们想要成员2的名称而不是索引。 它必须是我们的控制器与viewbag的东西但是,我们希望VriendID(friendID)是“Naam”(名称),它不在我们的vriendschap表(友谊)中的字段中但在memberTable / class中
所以要明确这一点:如果你看到viewbag中的代码我们怎么做viewbag.PersoonID我们想要类似于VriendID(friendID)但在friendshipTable中只有2个键没有名为“Naam”(name)的字段,“Naam”字段来自第一个viewbag所指的PersoonTable(persontable)。如果我们为viewbag.VriendId做了同样的事情,我们得到两次相同的名字。
对不起,如果这很复杂,如果我们使用荷兰名字,用英语解释这个并不容易。 先感谢您!!
答案 0 :(得分:1)
你应该使用:
ViewBag.VriendID = new SelectList(PersoonBLL.GetAll(), "PersoonID", "Naam",idTwo);
这应该这样做。 idTwo将从您实际使用的人员列表中获取下一个Id。
希望这适合你。