我正在尝试发布一个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被传递。我做错了什么?
答案 0 :(得分:0)
确保正确设置对JQuery
的引用。 Jquery intellisense不是那个东西!
<script src="~/Scripts/jquery-1.10.2.js"></script>
答案 1 :(得分:0)
虽然脚本标记可能正确呈现,但如果未加载jQuery(verionwhatever).js,则在不定义它的情况下调用$。
使用浏览器的调试工具查看是否定义了$,这清楚地表明您忘记加载jQuery。发生在每个人身上!