2015-10-06 119 views
0

在嘗試了未知數量的變化後,我得出結論,我需要尋求幫助。asp mvc部分頁面視圖更新與AJAX不工作

我只是試圖在我的控制器中調用一個方法,該方法使用jquery ajax功能呈現局部視圖。我看不出我做錯了什麼,在這個主題上有所有的信息我猜想這將是一件容易的事情,但我錯過了一些東西(我猜測,真的很明顯),無法弄清楚什麼。

_Layout.cshtml(主頁)

<script src="@Url.Content("~/Content/Scripts/jquery-1.10.2.js")"></script> 
<script src="@Url.Content("~/Content/Scripts/jquery-ui-1.11.4.js")"></script> 
<script src="@Url.Content("~/Content/Scripts/clickableRow.js")"></script> 
<script src="@Url.Content("~/Content/Scripts/jquery.validate.min.js")"></script> 
<script src="@Url.Content("~/Content/Scripts/jquery.validate.unobtrusive.min.js")"></script> 

MyController.cs(局部視圖法)

[ChildActionOnly] 
public ActionResult _MyPartialView (int page = 1) 
{ 
    ModelData pt = new ModelData(); 
    List<ModelData > md = pt.PagesOfData(page); 
    return PartialView(md); 
} 

_MyPartialView(線中省略....)

@{ 
Layout = null; 
} 
<div id="myDiv"> 
    <form id="theFormToRefresh "> 
     ......SOME FIELDS...... 
    </form> 
</div> 

一些我已經試過的javacript

嘗試X

$().ready(function() { 
    $(".page-number").on("click", function() { 
     var selectedPage = parseInt($(this).html()); 

     $.ajax({ 
      url: '@Url.Action("_MyPartialView")', 
      type: "POST", 
      datatype: "html", 
      data: selectedPage, 
      success: function (data) { 
       $('#myDiv').empty(); 
       $('#myDiv').html(data); 
      } 
     }); 
    }); 
}); 

嘗試ý

$().ready(function() { 
    $(".page-number").on("click", function() { 
     $("#myDiv").load('@Url.Action("_MyPartialView", "MyController")'); 
    }); 
}); 

嘗試Ž

$().ready(function() { 
    $(".page-number").on("click", function() { 
     var selectedPage = parseInt($(this).html()); 
     $.ajax({ 
       url: '@Url.Action("_MyPartialView", "MyController")', 
       data: { "page": selectedPage }, 
       success: function (data) { 
        $("#myDiv").html(data); 
       } 
      }); 
    }); 
}); 
+1

您需要從方法中刪除'[ChildActionOnly]'屬性(這意味着它只能被稱爲子動作 - 即使用'@ Html.Action()') –

+0

以下文章可能會提供你想要做什麼:http://stackoverflow.com/questions/15472978/using-mvc3-childactiononly-attribute-with-ajax –

回答

1

_MyPartialView()方法裝飾的[ChildActionOnly]這意味着該方法可被稱爲僅作爲子方法從內部看,例如通過使用

@Html.Action("_MyPartialView", new { page = 1 }) 

由於用戶請求(使用鏈接,地址欄或ajax),無法通過導航對其進行調用。

如果您想使用ajax調用它,則需要從該方法中刪除該屬性。

+0

我選擇刪除[ChildActionOnly]屬性。 – tony09uk

相關問題