为什么我的handontable的内容没有发布到控制器操作?

时间:2014-03-23 06:42:29

标签: jquery asp.net ajax json asp.net-mvc-3

我正在尝试将我的handsontable的内容发送到我的控制器操作。表函数很好,我设法调用操作但对象为null。如何将我的handontable的内容发布到我的控制器操作?谢谢你的帮助!

  <script src="../../Scripts/jquery.min.js" type="text/javascript"></script>
  <script src="../../Scripts/jquery-ui.custom.js" type="text/javascript"></script>

  <script src="../../Scripts/jquery.handsontable.full.js" type="text/javascript"></script>

  <script src="../../Scripts/numeral.sv-se.js" type="text/javascript"></script>

  <link href="../../Content/themes/base/jquery-ui.custom.css" rel="stylesheet" type="text/css" />
  <link href="../../Content/themes/base/jquery.handsontable.full.css" rel="stylesheet" type="text/css" />
  <link href="../../Content/themes/base/demo-style.css" rel="stylesheet" type="text/css" />


   <script type="text/javascript">
    $(function () {
    var $container = $("#handsonDataTable");
    var $console = $("#handsonDataConsole");
    var $parent = $container.parent();
    var autosaveNotification;
    $container.handsontable({
        startRows: 8,
        startCols: 6,
        rowHeaders: true,
        colHeaders: true,
        minSpareRows: 1,
        contextMenu: true,
   });


   var handsontable = $container.data('handsontable');

   $("button").click(function () {
        $.ajax({
            url: "/Home/TableData",
            data: { "data": handsontable.getData() }, //returns all cells' data
            dataType: 'json',
            type: 'POST',

            success: function (res) {
                if (res.result === 'ok') {
                    $console.text('Data saved');
                }
                else {
                    $console.text('Save error');
                }
            },
            error: function () {
                $console.text('Saved.');
            }
        });
    });

 </script>

     <div id="handsonDataTable"></div>
     <div id="handsonDataConsole"></div>

     <button>Click me</button>

在我的控制器中:

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.Mvc;

      namespace HandsonTable.Controllers
      {
           public class HomeController : Controller
           {
              public ActionResult Index()
               {
                ViewBag.Message = "Welcome to ASP.NET MVC!";

        return View();
    }

         [HttpPost]
          public ActionResult TableData(Object tabledata)
         {

                return View();
          }
      }
 }

1 个答案:

答案 0 :(得分:0)

问题出在控制器中。 Ajax请求没问题。您需要修改此代码。尝试将其更改为更简单的版本,返回"hello world"或其他内容并检查它是否运行(这样您就不会使用ajax获得错误500)。您也可以直接向控制器询问新问题。我没有asp.net的技能,所以我可以建议。

您可能还会发现this guide有用。