Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Viewbag中的外键值_Asp.net Mvc_Foreign Keys_Viewbag - Fatal编程技术网

Asp.net mvc Viewbag中的外键值

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

我们仍然忙于学校的项目,我们有一些问题

我们有一个会员班和一个朋友班 在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)的名称:

 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

希望这对你有用