2013-02-17 2 views
0

Bonjour, J'ai un problème avec mon application MVC. Je voudrais cliquer sur ActionLink> Charger les données du serveur> et insérer les données dans la même page. Mais mon code charge encore du contenu sur une nouvelle page et je n'ai aucune idée pourquoi. Quelqu'un pour m'aider?Le code charge toujours le contenu sur la nouvelle page

Ceci est mon Index.cshtml dans HomeController,

@model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo> 
    @Content.Script("jquery-1.9.1.min.js", Url) 
    @Content.Script("jquery.unobtrusive-ajax.min.js",Url) 
    @Content.Script("jquery.unobtrusive-ajax.js",Url) 
    @Content.Script("myScript.js",Url) 

    @section Entities{ 


    <table> 
    <tr> 
    <th> 
     <input type="submit" value="zobrazit" /> 
    </th> 
    <th> 
     iD 
    </th> 
    <th> 
     name 
    </th> 

    </tr> 

    @foreach (var item in Model) { 
    <tr> 
    <td> 
    @Ajax.ActionLink("..", "CheckEntity", new { id = item.iD }, 
      new AjaxOptions{ UpdateTargetId="properties", 
          HttpMethod="GET", 
          InsertionMode=InsertionMode.InsertAfter, 
      }) 
    </td> 
    <td>    
     @Html.DisplayFor(modelItem => item.iD) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.name) 
    </td> 

    </tr> 
    <tr> 
    <td> 
     <div id="properties"> 

     </div> 
    </td> 
    </tr> 
    } 
    </table> 
    } 


    @section PropertyInfo{ 
    <p>Property info</p> 
    } 

    @section Properties{ 
    <p>properties</p> 
    } 

Et voici mon contrôleur dans HomeController

public PartialViewResult CheckEntity(int id) 
    { 

     var model = WSConnect.getEntityInfo(id); 
     if(model !=null){ 
      return PartialView("CheckEntity", model.property); 
     } 
     var modell = new WSEntityInfo[0]; 
     return PartialView("CheckEntity", modell); 
    } 

et ChecktEntity est la vue partielle, mais chaque fois que je clique sur l'URL de charge du contrôleur ActionLink:/Home/ChceckEntity/1000 pour voir les données sur cette nouvelle page "(

Répondre

2

Il y a 2 choses qui ne vont pas avec votre code:

  1. Vous avez inclus le script jquery.unobtrusive-ajax.js deux fois, une fois la version minifiée et une fois la version standard. Vous devriez l'inscrire qu'une seule fois
  2. Le jquery.unobtrusive-ajax.js n'est pas compatible with jquery 1.9.1 parce que l'un des changements de rupture dans jQuery 1.9 est que le .live() method was removed et le script jquery.unobtrusive-ajax.js se fie à ce sujet. Si vous regardez votre console javascript, vous verrez l'erreur suivante: The .live method is undefined.. Donc, si vous voulez utiliser la fonctionnalité discrète AJAX dans ASP.NET MVC, vous devrez rétrograder la version de jQuery. Par exemple, la version 1.8.3 devrait fonctionner correctement.

Alors:

@model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo> 
@Content.Script("jquery-1.8.3.min.js", Url) 
@Content.Script("jquery.unobtrusive-ajax.min.js", Url) 
@Content.Script("myScript.js", Url) 

Aussi s'il vous plaît apprendre à déboguer votre code javascript. Utilisez un outil tel que FireBug ou la barre d'outils du développeur Chrome où toutes ces erreurs seront affichées.

+0

MERCI BEAUCOUP !!! PROBLÈME RÉSOLU :) – user2080814

Questions connexes