为什么数据不会传递给JQuery中的控制器

时间:2012-07-18 06:25:52

标签: jquery telerik-grid telerik-mvc

我在MVC2中有一个包含网格和图像按钮的页面。单击图像按钮时,currentPage,orderBy和filter将发布到JQuery中的控制器。代码是,

<script type="text/javascript">
$("#ExportExcel").click(function (e) {
e.preventDefault();

var resourceId = $('#resourceId').val();
var grid = $('#Grid').data('tGrid');
var pagenum = grid.currentPage;
var orderBy = grid.orderBy
var filter = grid.filterBy;

$.ajax({
url: '@Url.Action("ExportToExcel", "ExportExcelButton")',
data: { resourceId: resourceId, pagenum: pagenum, orderBy: orderBy, filter: filter },
type: 'POST',
success: function (data) {
}
});
});
</script>

<a href="<%: Url.Action("ExportToExcel", "ExportExcelButton") %>"> <img src='<%: Url.Content("~/Content/Images/ExportExcelButton.gif") %>'/></a>

public ActionResult ExportToExcel(string resourceId, string pagenum, string orderBy, string filter)

但是,单击图像按钮时,ExportToExcel操作中的所有数据均为空。我想知道什么是正确的方法。非常感谢。

1 个答案:

答案 0 :(得分:1)

我在你的代码中看到两个问题:

  1. 在html中你没有指定链接的id,所以点击它只是导航到动作,这就是为什么你在参数中看到null - 没有被发送
    它应该是:

    <a id="ExportExcel" href="<%: Url.Action("ExportToExcel", "ExportExcelButton") %>"> <img src='<%: Url.Content("~/Content/Images/ExportExcelButton.gif") %>'/></a>
    
  2. 在$(文件).ready(..)

  3. 期间将脚本标记放在链接减速或绑定之下