0

私はasp.net mvc4のプロジェクトに取り組んでいます。実際には、連絡先のリストを含む Select があるフォームを作成しています。

<select id="choix_contact">
    <option>Choisir un contact</option>
        @if (ViewBag.ListeContacts != null)
           {
                foreach (var Contact in ViewBag.ListeContacts)
                     {

                        int index = ViewBag.ListeContacts.IndexOf(Contact);
                        <option value="index">@Contact.Nom</option>
                     }
           }
           else
           {
               <option>Pas de contact</option>  
           }  </select>

リスト内の連絡先をクリックすると、コントローラーから Json データを返す関数のおかげで、その連絡先に関するデータを取得したいと考えています。その関数に、リスト内の連絡先のインデックスであるパラメーターを渡します。私の機能は次のようになります:

public JsonResult GetContactInfo(int indexContactList)
    {
        int NumDossier = StructureData.DonneNumDossier((string)Session["Utilisateur"], (string)Session["MotDePasse"]);
        List<Contact> ListeContacts = StructureData.DonneListeContact(NumDossier);
        Contact ContactInfos = new Contact(ListeContacts[indexContactList].Nom, ListeContacts[indexContactList].Prenom, ListeContacts[indexContactList].Email, ListeContacts[indexContactList].Fonction, ListeContacts[indexContactList].TelephoneFixe, ListeContacts[indexContactList].TelephonePort);
        return Json(ContactInfos);
    }

コントローラーからビューに Ajax でデータを取得するには、次のコードを使用します。

$(document).ready(function() {
    $("#choix_contact").change(function () {
        var selectContact = document.getElementById('choix_contact');
        var index = selectContact.value;
        var url = "/Accueil/GetContactInfo";
        $.getJSON(url, { indexContactList: index }, function (data) {
            $("#nom").html(data.Nom);
            $("#prenom").html(data.Prenom);
            $("#email").html(data.Email);
            $("#fonction").html(data.Fonction);
            $("#telFix").html(data.TelephoneFixe);
            $("#telPort").html(data.TelephonePort);
        });
    });
    });

問題は、それがまったく機能せず、ajax スクリプトの内部にも入らないということです... 誰かがアイデアを持っているのではないでしょうか?

4

2 に答える 2