2011-12-28 4 views
6

Я хочу обновить частичный просмотр при каждом щелчке ActionLink. Я передаю ту же модель частичному представлению, что и основной вид. Проблема в том, что частичное представление не обновляется. Не уверен, что я на правильном пути.MVC Ajax update partial view

Просмотр:

@model MyPoll.Models.Poll 

@Ajax.ActionLink("For", "AddPositive", new RouteValueDictionary { {"id", Model.Id }},new AjaxOptions() { UpdateTargetId = "countsDiv" }) 

<div id="countsDiv"> 
    @Html.Partial("Counts", Model) 
</div> 

Частичное:

@model MyPoll.Models.Poll 

Positive count : @Model.PositiveCount 
Negative count : @Model.NegativeCount 

Регулятор:

public ActionResult AddPositive(int id) 
{ 
    Poll poll = db.Polls.Find(id); 
    poll.PositiveCount++; 
    db.SaveChanges(); 

    return View(poll); 
} 

Сценарии а re также также:

<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
+0

ли '' MicrosoftAjax.js' и MicrosoftMvcAjax.js' ссылка? И jQuery тоже? –

+0

@ давид, да. – mishap

+0

Вы сделали базовую отладку: проверьте, есть ли у вас какие-либо ошибки js, если вы видите запрос, если действие контроллера получает запросы, если фактические данные будут обновлены ?? –

ответ

6

Исправлено:

В действии:

public **PartialViewResult** AddPositive(int id) 
    { 
     Poll poll = db.Polls.Find(id); 
     poll.PositiveCount++; 
     db.SaveChanges(); 

     return **PartialView**("Counts", poll); 
    } 
+0

Вау, это немного хромает. Любое объяснение того, почему нам нужно разделение? Получали ли вы сообщения об ошибках? Как вы это поняли? – vbullinger

+0

@vbullinger, я не помню, какая ошибка была, но мне пришлось возвращать PartialView вместо View, чтобы исправить эту проблему. – mishap

+0

Спасибо, это тоже помогло. Та же ошибка, но я не мог понять, почему она не работает. –

0

Возможно, это потому, что вы загружаете последний jQuery. Другие js зависят от jquery.

Смежные вопросы