2011-12-28 24 views
6

ActionLinkをクリックするたびに部分ビューを更新したいと思います。私はメインビューとして同じモデルを部分ビューに渡しています。問題は、部分ビューが更新されていないことです。私が正しい道にいるかどうかはわかりません。MVC Ajaxの更新部分ビュー

ビュー

@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); 
} 

スクリプト

<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

@david、そうです。 – 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、私は何のエラーだったのか覚えていませんが、問題を解決するためにViewの代わりにPartialViewを返さなければなりませんでした。 – mishap

+0

ありがとう、それも私を助けた。同じエラーですが、なぜ動作していないのかわかりませんでした。 –

0

これは、おそらくjqueryを最後にロードしているためです。他のjはjqueryに依存します。固定

関連する問題