ajax - jQuery 将类作为 POST 参数发送

标签 ajax jquery c#-4.0 asp.net-mvc-4

我想将类作为 ajax 后参数发送。

我的类(class):

  public class PageInput
    {
        public string ActionName { get; set; }
        public string Controller { get; set; }
        public int CountPage { get; set; }
        public int CountRecordInPage { get; set; }
    public KeyValuePair<string, short> No { get; set; }

    }

ajax代码:

$.ajax({
        url: '@Url.Action("GetPageNumbers", "MyClasses")',
        data: '@Model.PageInput',
        success: function (data) {
            alert(data);
        }
    });

行动:

 public ActionResult GetPageNumbers(PageInput pageInput)
    {
        return PartialView("_PagingNumbers", pageInput);
    }

不起作用。但为什么呢?

action接收到数据时结果为空!!但是发送前数据是正确的。

最佳答案

您需要在 JavaScript 代码中创建一个对象并将其发送出去:

$.ajax({
    url: '@Url.Action("GetPageNumbers", "MyClasses")',
    data: {
        ActionName: '@Model.ActionName',
        Controller: '@Model.Controller',
        CountPage: @Model.CountPage,
        CountRecordInPage: @Model.CountRecordInPage,
    },
    success: function (data) {
        alert(data);
    }
});

您还需要将 [HttpPost] 属性添加到 Controller 操作

关于ajax - jQuery 将类作为 POST 参数发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494725/

相关文章:

php - 在 AJAX 和 PHP 中写入 MySQL 数据库时使用 Facebook 登录

javascript - 使用 ajax 调用 WebMethod 时出现 500 Internal Server Error

javascript - jQuery 自动完成和后退按钮行为?

php - 为 ajax 调用设置 xmlhttpRequest.setRequestHeader?

javascript - JQuery Sortable 和 Draggable - 水平和垂直移动

C# 现在有 biginteger,但是对任意精度 float 的支持呢

linq - 使用 Linq 或 Lambda 表达式的 SQL 之间的等效语句

c# - 将耗时的进程从我的 ASP.NET 应用程序中移走

javascript - 不同日期重定向到不同页面

javascript - window.frames ['myframe' ] 在 Firefox 中出现错误?