如何访问Viewbag中foreach外特定索引处对象的属性

本文关键字:索引 对象 属性 foreach 何访问 访问 Viewbag | 更新日期: 2023-09-27 18:25:45

我有一个选择输入,我在其中显示ViewBag中的数据,ViewBag包含对象列表"联系人":

<select id="choix_contact" onchange="javascript:RemplirTextbox();">
       <option>Choisir un contact</option>
             @if (ViewBag.ListeContacts != null)
                 {
                      foreach (var Contact in ViewBag.ListeContacts)
                           {
                                 <option>@Contact.Nom</option>
                           }
                 }
                 else
                 {
                    <option>Pas de contact</option>  
                 }

问题是,我想处理select上的onchange javascript事件。当我们在列表中选择一个联系人时,我想用该联系人的其他属性填充文本框。该列表包含具有以下属性的联系人:

new Contact(nom_contact, prenom_contact, email_contact, formation_contact, telephoneFixe_contact, telephonePortable_contact)

例如,当我们选择一个名为:Hubert的联系人时,我希望在下面的文本框中,联系人的号码显示在文本框中。我尝试了很多方法,但在foreach之外,我不知道如何访问对象的属性。我知道我们可以通过这样做来了解列表中对象的索引:

int index = ViewBag.ListeContacts.IndexOf(Contact);

有人有主意吗?我没有剩下的了。。。

如何访问Viewbag中foreach外特定索引处对象的属性

您应该尽量避免在javascript中获取剃刀变量的混乱。

此外,尽可能避免使用ViewBag。

我会通过在您的一个控制器上使用一个方法来实现这一点,该方法将Contact字符串作为参数,并访问您的数据库并返回您想要的变量列表。

然后,在下拉框的值更改事件中添加一个javascript事件处理程序,并对控制器方法进行Ajax调用。然后,这将访问您的数据存储,并返回值,然后通过ajax将这些值反馈给JS。然后你可以在空闲时填充你的文本框。