2011-12-28 38 views
6

Tôi muốn cập nhật chế độ xem từng phần mỗi lần nhấn ActionLink. Tôi đang chuyển cùng một mô hình cho chế độ xem một phần làm chế độ xem chính. Vấn đề là xem một phần không được cập nhật. Không chắc chắn nếu tôi đi đúng hướng.Cập nhật một phần MVC Ajax xem

Xem:

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

phần:

@model MyPoll.Models.Poll 

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

điều khiển hành động:

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

    return View(poll); 
} 

Các kịch bản một cũng được tham chiếu:

<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

đang 'MicrosoftAjax.js' và' MicrosoftMvcAjax.js' tham chiếu? Và jQuery cũng vậy? –

+0

@david, đúng vậy. – mishap

+0

bạn đã thực hiện gỡ lỗi cơ bản: kiểm tra xem bạn có bất kỳ lỗi js nào không, nếu bạn thấy yêu cầu được thực hiện, nếu hành động của bộ điều khiển nhận được yêu cầu, nếu dữ liệu được trả về thực sự được cập nhật? –

Trả lời

6

Cố định:

Trong hành động:

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

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

Wow, đó là loại lame. Bất kỳ lời giải thích nào về lý do tại sao chúng ta cần sự tách biệt? Bạn có nhận được thông báo lỗi nào không? Làm thế nào bạn tìm ra điều này? – vbullinger

+0

@vbullinger, tôi không nhớ lỗi đó là gì, nhưng tôi phải trả về PartialView thay vì Chế độ xem để khắc phục sự cố. – mishap

+0

Cảm ơn bạn, điều đó đã giúp tôi. Cùng một lỗi, nhưng tôi không thể hiểu tại sao nó không hoạt động. –

0

Có thể vì bạn đang tải jquery cuối cùng. Các js khác phụ thuộc vào jquery.

Các vấn đề liên quan