将 JSON 对象发布到控制器和模型

本文关键字:控制器 模型 JSON 对象 | 更新日期: 2023-09-27 17:56:29

我正在尝试发布一个 Json 字符串,对其进行反序列化,然后使用 MVC 实体框架将其保存到 SQL 数据库。这是我的模型:

[Serializable]
public partial class employee
{
    public int id { get; set; }
    public string netid { get; set; }
    public string enumber { get; set; }
    public string peoplesoft { get; set; }
    public string first_name { get; set; }
    public string last_name { get; set; }
    public string mi { get; set; }
    public string prefix { get; set; }
    public string suffix { get; set; }
    public string email { get; set; }
    public string tenure_year { get; set; }
    public byte tenure_indicator { get; set; }
    public Nullable<System.DateTime> hire_date { get; set; }
    public string updated_by { get; set; }
    public System.DateTime created_at { get; set; }
    public System.DateTime updated_at { get; set; }
    public string gender { get; set; }
    public Nullable<System.DateTime> birth_date { get; set; }
}

我的控制器:

[HttpPost]
    public ActionResult Create(ChadAPI.Models.Lookup.employee employee)
    {
        if (ModelState.IsValid)
        {
            db.employees.Add(employee);
            db.SaveChanges();
            return new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        return Content("Model State Invalid");
    }

我的观点是:

@model ChadAPI.Models.Lookup.employee
@{
ViewBag.Title = "Create";
}
<script src="~/Scripts/jquery-1.10.2.intellisense.js"></script>
<h2>Create</h2>

<input type="submit" id="Save" value="Save" />
<script>
$(function () {
    $("#Save").click(function () {
        alert("clicked!");
        var employee = {
            id: 77,
            netid: 'caw63231',
            enumber: '00000',
            peoplesoft: '1012481',
            firstname: 'Christian',
            updatedby: 'caw63231',
            createdat: '10/14/2013 3:02:46 PM',
            updatedat: '10/14/2013 3:02:46 PM'
        }
        $.ajax({
            type: "POST",
            url: "Employees/Create",
            data: employee,
            success: function (data) {
                console.log("success!")
            },
            dataType: "json",
            traditional: true
        });
    });
});
</script>

当我按下视图中的按钮时,没有任何反应,并且使用 Fiddler,我可以看到没有传递任何 JSON。我做错了什么?

将 JSON 对象发布到控制器和模型

确保正确设置了对JQuery的引用。Jquery智能感知不是东西!

<script src="~/Scripts/jquery-1.10.2.js"></script>

虽然脚本标签可能正在正确呈现,但如果 jQuery(verionwhatever).js 没有加载,则调用 $ 而不定义它。

使用浏览器的调试工具查看是否定义了 $,这清楚地表明您忘记加载 jQuery。发生在每个人身上!