jQuery传递值未在Controller的“索引”操作方法中接收

时间:2013-06-28 06:45:07

标签: jquery asp.net-mvc

问题: 为什么下面的控制器操作方法没有收到数据? 请让我知道我在下面的编码中错过了什么。

我的观点

    <script src="~/Scripts/jquery-1.5.1.js" type="text/javascript"></script>
    <script type="text/javascript">

    $(document).ready(function () {
    $("#MyLink").click(function () {

        $.ajax({
            type: "POST",
            url: "/Home/Index",
            data: JSON.stringify({ person: {
                                                    id: 11,
                                                    Name: "MyName"
                                                 }
                                    }),
            contentType: "application/json; charset=utf-8"
              });
           });
         });
    </script>

    <a href="#" id="MyLink">Click Here</a>

我的控制器

    [HttpPost]
    public ActionResult Index(Person person)
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";

        return View();
    }

我的模特

    using System;
    using System.Web;

    namespace MvcApplication1.Models
    {
       public class Person
       {
         int id { get; set; }
         string Name { get; set; }
       }
     }

1 个答案:

答案 0 :(得分:3)

将视图模型上的属性设置为public或默认模型绑定器将忽略它们:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}