none
asp.net mvc 3 selectionner item et passer d'une vue à une autre RRS feed

  • Discussion générale

  • bonjour, j'ai besoin de votre aide

    j'ai une vue qui contient ce code :  <a  role="button" class="icon-btn span3" id="AddProspectToList">
                                                         <i class="icon-group"></i>
                                                           <div>Gérer les membres</div>   </a>

    j'ai cette action dans le controller que j'appelle du code java script :

      [HttpPost]
            public ActionResult AddProspectToList(string checkedItem)
        {   
                      
            int idList = Convert.ToInt32(checkedItem);
                                     
            /*display memberlist*/
                        List<DAL.MembreList> list=new List<DAL.MembreList>();
                        var membrelists = Context.MembreLists.Include("MarketingList").Include("Prospect").Include("Account").Include("Contact");
                        
                        list = membrelists.ToList();
                        List< WebClientApplication.Models.MembreList.Prospect > prospectListing = new List<WebClientApplication.Models.MembreList.Prospect>();
                        WebClientApplication.Models.MembreList membrelist = new WebClientApplication.Models.MembreList();       
                             foreach(var item in list ){

                            if (item.idMarketingList == idList)
                            {
                                WebClientApplication.Models.MembreList.Prospect pros = new WebClientApplication.Models.MembreList.Prospect();
                                Prospect obj = prospectBLL.GetProspectById((int)item.idProspect);
                                pros.idProspect = obj.idProspect;
                                pros.ProspectName = obj.ProspectName;
                                pros.Subject=obj.Subject;
                                pros.JobTitle = obj.JobTitle;
                                pros.Email = obj.Email;
                                pros.Tel = obj.Tel;
                                prospectListing.Add(pros);
                            }
                        }
                             membrelist.prospectListing = prospectListing;
                           
                          return View(   membrelist);
              
                       }}                   
           je veux que son resultat s'affiche sur la vue AddProspectToList.cshtml dans un tableau mais malheureusement j'ai toujours un retour sur la vue initial je nsais pas pourquoi. Aidez-moi svp   

    • Type modifié Aurel Bera lundi 7 avril 2014 05:19 disc
    lundi 31 mars 2014 12:53

Toutes les réponses

  • Bonjour,

    Pouvez-vous nous montrer le code JavaScript ?

    Confirmez vous que le code ci-dessus est bien appelé depuis votre code JavaScript ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 31 mars 2014 23:36
    Modérateur
  • voila le code javascript, je serais reconnaissante merci beaucoup

    $(document).ready(function () {

        $("#AddProspectToList").click(function () {
            console.log("Handler for .click() called.");

            var selectedList = document.getElementById("AddProspectToList").value;
            var checkedItem = new Array;

            $("td div span.checked :checkbox:checked").each(function (i) {
                checkedItem.push($(this).attr("value"));
                console.log("finish" + $(this).attr("value"));

                var a = checkedItem;

                console.log("btn close");
                var url = '/MarketingList/AddProspectToList?checkedItem=' + checkedItem;
                $.post('/MarketingList/AddProspectToList?checkedItem=' + checkedItem);

            });
            console.log("btn close");
        });
    });

    mercredi 2 avril 2014 11:59
  •  

    Bonjour
    Essayez de debugger avec les outils de développement d'IE (F12) les valeurs dans checkedItem. 
    Deux autres observations - checkedItem c'est un Array , donc veuillez utiliser Join pour le transformer dans une variable.
    Aussi, si j'ai bien compris le sélecteur    $("td div span.checked :checkbox:checked")  n'est pas aussi correcte.
    D'autre cote, je ne suis pas sûr que vous devez utiliser .attr(value)
    Pouvez-vous nous montrer le code HTML d'où vous voulez sélecter ?

    Bien cordialement, 

     

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 2 avril 2014 12:12
  •      <table class="table table-striped table-bordered" id="sample_1">
                        <thead>
                            <tr>
                                <th style="width: 8px;">
                                    <input type="checkbox" class="group-checkable" data-set="#sample_1 .checkboxes" /></th>
                                <th></th>

                                <th class="hidden-phone">Nom</th>
                                @* <th class="hidden-phone">Type de memebres</th>*@
                                <th class="hidden-phone">Objectif</th>
                                <th class="hidden-phone">Coût estimé</th>



                            </tr>
                        </thead>
                        <tbody>
                            @foreach (var item in Model.marketingListing)
                            {
                                string EditUrl = "/MarketingList/Details/" + item.idList;
                                                
                                <tr class="odd gradeX">

                                    <td>
                                        <input type="checkbox" class="checkboxeList" value="@item.idList" id="@item.idList" name="checkedList"/></td>
                                    <td><a href="@EditUrl">
                                        <img src="@Url.Content("~/Content/assets/img/icon-edit.png")" /></a></td>

                                    <td>@Html.ActionLink(item.ListName, "Details", new { id = item.idList })</td>

                                    @* <td>@Html.ActionLink(item.MembreType.TypeMembre, "Details", new { id = item.idList })</td>*@
                                    <td>@Html.ActionLink(item.Objectif, "Details", new { id = item.idList })</td>
                                    <td>@Html.ActionLink(item.Cost.ToString(), "Details", new { id = item.idList })</td>



                                </tr>
                            }
                        </tbody>
                    </table>
                 
    mercredi 2 avril 2014 12:14
  • PS: j'ai débugé l'action du controlleur et je recupère la valeur de chekedItem souhaité.
    mercredi 2 avril 2014 12:18
  • Sera plus facile avec le code HTML genere (click droite/Afficher la source)  que de essayer de reconstruire à partir du Razor.

    En plus, esayez avec:

     var url = '/MarketingList/AddProspectToList?checkedItem=' + checkedItem;

    alert(url);

    pour voir si vous avez le bon url. 

    $post initialise une communication avec le serveur en arrière-plan.

    Donc vous ne rechargez pas la page.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 2 avril 2014 12:27
  • vraiment y a aucun soucis concernant le chekedItem j'obtient le resultat necessaire voila ce que j'obtient. par contre le post je pense qu'il fait pas l'affaire j'en doutais. Mais comment je peux le changer je suis  débutante en javascript je sais pas quoi mettre.


    mercredi 2 avril 2014 12:40
  • Il y a plusieurs solutions:  laForme.submit ()   et dans ce cas vous devez modifier l'action avec laForme.attr ("action", url)  ou Window.openDialog/Window.showModalDialog().

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 2 avril 2014 12:48