Asp.net mvc Viewbag中的外键值
我们仍然忙于学校的项目,我们有一些问题 我们有一个会员班和一个朋友班 在friendclass中,我们将memberID和FriendID作为复合主键。 所以memberID引用memberclass中的memberID,但FriendID也引用memberclass中的memberID,因为朋友必须是成员 因此,在我们看来,我们可以从dropdownlist中选择一个成员,该成员可以与另一个成员成为朋友,并存储该成员 但是,如果我们想编辑此友谊并想更改成员的朋友或同时更改两个名称。我们无法在dropdownlist中看到当前的朋友,尽管我们可以在dropdownlist中看到希望更改其友谊的成员 以下是一些屏幕截图: 第一个屏幕截图是索引视图,它为我们提供了成员和朋友(也是成员)的ID 所以表名是:Person-Friend with 如果我们现在观看编辑视图,我们会看到Person:Jan(PersonID=1)和vriend meet(friend with):Jeanine(PersonID2) 因此,通过使用viewbag并将其添加到视图中,我们已经可以获得成员一(Jan)的名称:Asp.net mvc Viewbag中的外键值,asp.net-mvc,foreign-keys,viewbag,Asp.net Mvc,Foreign Keys,Viewbag,我们仍然忙于学校的项目,我们有一些问题 我们有一个会员班和一个朋友班 在friendclass中,我们将memberID和FriendID作为复合主键。 所以memberID引用memberclass中的memberID,但FriendID也引用memberclass中的memberID,因为朋友必须是成员 因此,在我们看来,我们可以从dropdownlist中选择一个成员,该成员可以与另一个成员成为朋友,并存储该成员 但是,如果我们想编辑此友谊并想更改成员的朋友或同时更改两个名称。我们无法在d
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>
model.PersoonID)%%>
model.PersoonID)%%>
model.VriendID)%%>
model.VriendID)%%>
最初我们有成员2的索引,这是正确的,但我们希望有成员2的名称,而不是索引。
它必须在我们的控制器和viewbag中,但我们希望VriendID(friendID)为“Naam”(名称),它不在vriendschap表(Friendly)的字段中,而是在memberTable/类中
因此,要明确这一点:如果您看到viewbag中的代码,我们是如何创建viewbag.PersoonID的,我们希望VriendID(friendID)有类似的代码,但是FriendTable中没有名为“Naam”(名称)的字段。只有2个键,字段“Naam”来自第一个viewbag所指的PersoonTable(persontable)。如果我们对viewbag.vriendo做了同样的操作,我们会得到两倍于同一名称的结果
很抱歉,如果这是非常复杂的,这是不容易解释的英语,如果我们使用荷兰名称。
提前谢谢你 您应该使用:
ViewBag.VriendID=new SelectList(PersoonBLL.GetAll(),“PersoonID”,“Naam”,idTwo)代码>
这应该可以做到。
idTwo将从您实际使用的人员列表中获取下一个Id
希望这对你有用