Динамическое изображение и Ajax в ASP.NET MVC - PullRequest
0 голосов
/ 09 августа 2010

Я пытаюсь показать подробное частичное представление, используя ajax и colorbox. Работает нормально но только в первый раз. После этого GetGraph не запускается, и первое изображение отображается снова. Если я перезагружаю всю страницу, она снова работает. Детальная информация обновляется. Хорошо, это просто изображение, которое не работает.

Несколько связанный вопрос

Вот что у меня есть:
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>

Действия контроллера:

    [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");
    }

Частичный вид:

<%@ 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>

1 Ответ

0 голосов
/ 09 августа 2010

Ну, во-первых, вы вызываете действие GetDetails в вашем $ .post вместо действия GetChart.

...