2010-10-22 6 views
1

Je peux voir le résultat lorsque vous entrez quelque chose dans le champ de texte. Le résultat va à la DIV que je veux. Cependant, je regarde le code source de la page, je ne vois pas l'élément de remplacement.ASP .NET MVC AJAX BeginForm InsertionMode.Replace ne fonctionne pas bien

Par exemple, j'entre 'aaaaaaaaaaaaaaaa', cliquez sur le bouton soumettre, je vois le résultat comme Vous avez entré aaaaaaaaaaaaaaaa; Mais clic droit pour ouvrir la source, je ne vois pas son élément HTML

Parce que j'utilise Accordion à d'autres endroits, Accordéon ne fonctionne pas bien parce que JavaScript ne voit pas les éléments html retournés par Action.

Que dois-je faire pour le réparer?

La vue

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<h2>Home Page</h2> 
<%using (Ajax.BeginForm("Index", new AjaxOptions { UpdateTargetId = "HomeResult", InsertionMode = InsertionMode.Replace })) 
    { %> 
    <%= Html.TextBox("query", null, new {size=40}) %> 
    <input type="submit" value="Home Submit" /> 
<%} %> 

<div id="HomeResult"> 
    <h2>Home result goes here.</h2> 
    <%Html.RenderPartial("PartialResult", ViewData.Model); %> 
</div> 

L'action du contrôleur

public ActionResult Index() 
    {    
     if (Request.IsAjaxRequest()) 
     { 
      ViewData["Message"] = "Partial View Logon"; 

      return PartialView("PartialResult", Request.Params.Get("query")); 
     } 
     return View(); 
    } 

Le résultat partiel Voir

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<div> 
<% if (Model != null) %> 
<% { %> 
    <h1> 
     You entered <%= Model.ToString() %> 
    </h1> 
<% } %> 
</div> 

Répondre

0

Je pense que vous êtes à la recherche sur le mauvais chemin avec votre problème. Vous visualisez la source pour le DOM chargé, pas le DOM mis à jour. Je dis utiliser Firefox/Chrome et la barre d'outils du développeur Web, ce qui vous permet d'afficher la source "générée". droit

+1

J'ai vu l'élément html dans Firebug, merci de me le rappeler. –

0

cliquez pour ouvrir la source

vous donnera la source de la page lorsque la page a été téléchargée, et ne reflètent pas nécessairement les modifications apportées au DOM depuis chargement de la page. Peut-être que vous devriez envisager d'utiliser un débogueur Web approprié tel que FireBug. Une fois que vous pouvez voir ce qui se passe réellement, vous devriez peut-être mieux comprendre où les choses vont mal.

+0

Merci. J'ajoute la fonction javery javery RunAccordion et je l'appelle dans l'événement Ajax OnSuccess. Ça marche. –