Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将Json字符串发布到实体模型_C#_Jquery_Json_Asp.net Mvc_Entity Framework - Fatal编程技术网

C#将Json字符串发布到实体模型

C#将Json字符串发布到实体模型,c#,jquery,json,asp.net-mvc,entity-framework,C#,Jquery,Json,Asp.net Mvc,Entity Framework,我试图发布一个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; se

我试图发布一个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; }
}
我的看法是:

@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>
@model ChadAPI.Models.Lookup.employee
@{
ViewBag.Title=“创建”;
}
创造
$(函数(){
$(“#保存”)。单击(函数(){
警报(“单击!”);
var雇员={
id:77,
网友:“caw63231”,
枚举器:“00000”,
peoplesoft:'1012481',
名字:'基督教徒',
更新人:“caw63231”,
创建日期:“2013年10月14日下午3:02:46”,
更新日期:“2013年10月14日下午3:02:46”
}
$.ajax({
类型:“POST”,
url:“员工/创建”,
数据:雇员,
成功:功能(数据){
log(“成功!”)
},
数据类型:“json”,
传统的:真的
});
});
});

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

Json是一个解析为字符串的对象,当将此对象发送到服务器时,MVC会自动将其转换为对象,您无需自行完成此操作,因此:

公共操作结果创建(ChadAPI.Models.Lookup.employee jsonemployee)

另一方面,在Js中创建相同的对象:

var emp=新对象() { id:777, }


另外,检查您的javascript代码是否正在运行

Json是一个解析为字符串的对象,当将此对象发送到服务器时,MVC会自动将其转换为该对象,您无需自行执行此操作,因此:

公共操作结果创建(ChadAPI.Models.Lookup.employee jsonemployee)

另一方面,在Js中创建相同的对象:

var emp=新对象() { id:777, }


另外,检查您的javascript代码是否正在运行

MVC将自动将JSON请求映射到您的操作参数。您编写的操作需要一个字符串对象,并且您正试图将其发布为一个包含数组的JSON对象

您应该更新操作以接收Employee对象,并将此对象的JSON表示形式发布到操作。像这样:

$(function () {
$("#Save").click(function () {
    var employee = {
            id: 77,
            netid : 'cfw22511',
            enumber : '000000',
            peoplesoft : '2322381'
             //..... Add the rest of your data to the JSON object
        };
    $.ajax({
        type: "POST",
        url: "/Employees/Create",
        data: employee,
        success: function(data){
            alert(data.Result)
        },
        dataType: "json",
        traditional: true
    });
});
}))


MVC将自动将JSON请求映射到您的操作参数。您编写的操作需要一个字符串对象,并且您正试图将其发布为一个包含数组的JSON对象

您应该更新操作以接收Employee对象,并将此对象的JSON表示形式发布到操作。像这样:

$(function () {
$("#Save").click(function () {
    var employee = {
            id: 77,
            netid : 'cfw22511',
            enumber : '000000',
            peoplesoft : '2322381'
             //..... Add the rest of your data to the JSON object
        };
    $.ajax({
        type: "POST",
        url: "/Employees/Create",
        data: employee,
        success: function(data){
            alert(data.Result)
        },
        dataType: "json",
        traditional: true
    });
});
}))


您是否尝试过将
console.log()
alert()
放在click函数中以查看是否触发了单击?是的,我尝试了以下操作:成功:函数(数据){alert(数据.Result)}尝试数据:JSON.stringify(employeeArray)
成功:函数(数据){alert(数据.Result)}
不会告诉您单击是否触发。这将告诉您ajax调用是否成功。请检查您的视图是否隐式使用共享布局。此问题中的JQuery引用不完整。您可能需要实际引用jquery JavaScript库(如果您的视图没有使用已经使用的布局)。另外,您是否在浏览器中遇到任何JS错误?您是否尝试过将
console.log()
alert()
放在单击函数中,以查看是否触发了单击?是的,我尝试过:success:function(data){alert(data.Result)}try data:JSON.stringify(employeeArray)
success:function(data){alert(data.Result)}
不会告诉您是否触发了单击。这将告诉您ajax调用是否成功。请检查您的视图是否隐式使用共享布局。此问题中的JQuery引用不完整。您可能需要实际引用jquery JavaScript库(如果您的视图没有使用已经使用的布局)。另外,您是否在浏览器中发现任何JS错误?我得出了相同的答案,删除了
[ValidateAntiForgeryToken]
属性进行测试。感谢您的明确指示。请查看我所做的更改,因为我仍然没有得到任何结果。我得到了相同的答案,删除了用于测试的
[ValidateAntiForgeryToken]
属性。感谢您的明确指示。请看我所做的改变,因为我仍然没有得到任何事情发生。
[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(CreateChadAPI.Models.Lookup.employee employee)
    {
        if (ModelState.IsValid)
        {
            db.employees.Add(employee);
            db.SaveChanges();
            db.SaveChanges();
            return new JsonResult() {Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
        }
        return Content("Model State Invalid");
    }