经过Ajax post Json类型的数据到Controller

View html

复制代码
 function postSimpleData() { $.ajax({ type: "POST", url: "/Service/SimpleData", contentType: "application/json", //必须有 dataType: "json", //表示返回值类型,没必要须 data: JSON.stringify({ 'foo': 'foovalue', 'bar': 'barvalue' }), //至关于 //data: "{'str1':'foovalue', 'str2':'barvalue'}",  success: function (jsonResult) { alert(jsonResult); } }); } function postListString() { $.ajax({ type: "POST", url: "/Service/ListString", contentType: "application/json", dataType: "json", data: JSON.stringify({ "BuIds": ["1", "2", "3"] }), success: function (jsonResult) { alert(jsonResult); } }); } function postEmployees() { $.ajax({ type: "POST", url: "/Service/Employees", contentType: "application/json", dataType: "json", data: JSON.stringify({ "Employees": [ { "firstName": "Bill", "lastName": "Gates" }, { "firstName": "George", "lastName": "Bush" }, { "firstName": "Thomas", "lastName": "Carter" } ] }), success: function (jsonResult) { alert(jsonResult); } }); }
复制代码

 

Controller ajax

复制代码
 [HttpPost] public ActionResult SimpleData(string foo, string bar) { return Json("SimpleData", JsonRequestBehavior.AllowGet); } [HttpPost] public ActionResult ListString(List<string> buIds) { return Json("ListString", JsonRequestBehavior.AllowGet); } [HttpPost] public ActionResult Employees(List<Employee> Employees) { return Json("Employees", JsonRequestBehavior.AllowGet); } 
复制代码
复制代码
public class Employee { public string FirstName { get; set; } public string LastName { get; set; } }
复制代码

 

结果 json

 

值得注意的有2点: app

1)Ajax 选项中 函数

contentType: "application/json"

 这一条必须写,代表request的数据类型是json。 post

url

dataType: "json"

这一条表示返回值的类型,没必要须,且依据返回值类型而定。 spa

2)选项中 code

data: JSON.stringify({ 'foo': 'foovalue', 'bar': 'barvalue' })

 不少时候咱们将数据写做: htm

{ 'foo': 'foovalue', 'bar': 'barvalue' }

这样会致使错误,由于js会默认将这个json对象放到表单数据中,故而致使controller接收不到。

有两种办法处理:第一种方式是用JSON.stringify()函数,其中JSON被Ecmascript5定义为全局对象。有关该函数的用法,见此处

                    第二种方式是直接用双引号包裹起来,好比data: "{'str1':'foovalue', 'str2':'barvalue'}"。

相关文章
相关标签/搜索