2010-12-29 25 views
12

Tôi đang cố gắng tải một phần lượt xem vào div từ chế độ xem cuộc gọi, tuy nhiên, lượt xem một phần sẽ tải vào trang mới. Không có nhiều mã cho nó và tôi đã thử nhiều cách khác nhau từ các bài đăng khác, nhưng nó vẫn tải vào một trang mới. Vì vậy, tôi nghĩ rằng tôi có thể thiếu một cái gì đó cơ bản.Tải chế độ xem một phần vào div

khiển

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Index() 
{ 
    return View(); 
} 

public ActionResult Test() 
{ 
    return PartialView("Test"); 
} 

Xem

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 

@using (Ajax.BeginForm("Test", "Home", new AjaxOptions { InsertionMode=InsertionMode.Replace, UpdateTargetId = "mydiv" })) 
{  
    @Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions{ }); 
} 

<div id="mydiv"> 
    @Html.Partial("Test") 
</div> 

PartialView

<h1>Test</h1> 
+2

chấp nhận một trong các câu trả lời. –

Trả lời

0

nhu cầu cục bộ của bạn được wit hin dạng ajax

+1

Tôi đang kiểm tra Request.IsAjaxRequest() trong bộ điều khiển và nó quay trở lại là sai. Việc đánh dấu biểu mẫu là điều này.

user415394

24

Vài nhận xét về mã của bạn:

  • Ajax.* người giúp đỡ trong ASP.NET MVC 3 RC2 không còn sử dụng MS AJAX đã được phản đối ủng hộ jQuery, vì vậy vùi kịch bản của bạn là sai . Bạn cần phải bao gồm jquery
  • Bạn có biểu mẫu ajax không có nút gửi và liên kết ajax bên trong biểu mẫu này. Điều này không có ý nghĩa. Sử dụng biểu mẫu ajax hoặc liên kết ajax.

Vì vậy, mã của bạn có thể trông giống một trong những dòng:

<script src="@Url.Content("~/scripts/jquery-1.4.4.js")" type="text/javascript"></script> 

@Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions { 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "mydiv" 
}) 

<div id="mydiv"> 
    @Html.Partial("Test") 
</div> 
12

Thêm dòng này vào trang của bạn (trang chính hoặc bố trí)

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

ngay sau dòng MicrosoftMvcAjax.js.

+1

Tôi đã đấu tranh với điều này và câu trả lời này đã khắc phục được sự cố của tôi. Cám ơn! – Stephane

1

Tôi nghĩ rằng bạn nên sử dụng <input type="submit" /> thay vì @Ajax.Actionlink(...)

trong MVC4 bạn có thể thêm bó @Scripts.Render("~/bundles/jqueryval") ngay sau @Scripts.Render("~/bundles/jquery") hoặc thêm tài liệu tham khảo đoạn mã trong phần kịch bản trong quan điểm trang như hình dưới đây:

@section scripts 
    { 
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

    } 

Good Luck .

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