asp mvc部分页面视图更新与AJAX不工作

问题描述:

在尝试了未知数量的变化后,我得出结论,我需要寻求帮助。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://*.com/questions/15472978/using-mvc3-childactiononly-attribute-with-ajax –

_MyPartialView()方法装饰的[ChildActionOnly]这意味着该方法可被称为仅作为子方法从内部看,例如通过使用

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

由于用户请求(使用链接,地址栏或ajax),无法通过导航对其进行调用。

如果您想使用ajax调用它,则需要从该方法中删除该属性。

+0

我选择删除[ChildActionOnly]属性。 – tony09uk