2010-08-09 8 views
0

J'essaie de montrer un détail partialview en utilisant ajax et colorbox. Cela fonctionne bien mais seulement la première fois. Après cela, GetGraph n'est pas exécuté et la première image est à nouveau affichée. Si je recharge toute la page, cela recommence une fois. Le detailinfo met à jour OK c'est juste le chartimage qui ne fonctionne pas.Image dynamique et Ajax dans ASP.NET MVC

Somewhat related question

Voici ce que j'ai jusqu'à présent:
jQuery:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("a.details").click(function() { 
     var id = $(this).attr("href"); 
     $.post('GetDetails', { id: id }, function (data) { 
      $.fn.colorbox({ open: true, html: data }); 
     }); 
     return false; 
    }); 
}) 
</script> 

actions: Contoller

[Authorize(Roles = "Statistics")] 
    public ActionResult GetDetails(string id) 
    {    
     var user = MemberShipRepository.GetUserInfo(User.Identity.Name); 
     var details=StatisticsService.GetSaleDetail(user.UserId, id); 
     var chart = StatisticsService.CreateChart(details.MontlySales); 
     TempData["Chart"] = chart; 
     ViewData.Model = details; 
     return View(); 
    } 

    public ActionResult GetChart() 
    { 
     var file = TempData["Chart"] as byte[]; 
     return File(file, "image/png"); 
    } 

Vue partielle:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SaleDetail>"%> 
<table> 
<!--Code for displaying detailinfo--> 
</table> 
<div id="DetailsGraph"> 
<h3> 
    <%=Html.Encode(ResStrings.StatsticStrings.Statistic) %></h3> 
    <img src="GetChart" width="700" height="300" alt="Graph" /> 
</div> 

Répondre

0

Eh bien pour une chose que vous appelez l'action GetDetails dans votre $ .post au lieu de l'action GetChart.

+0

Désolé, peut-être que mon message n'est pas clair. GetDetails reçoit les détails, GetChart est appelé directement à partir de la vue partielle dans la balise . – Zwempha