天天看点

ajax用post传输数据,通过POST(ajax)发送JSON数据并从Controller(MVC)接收json响应...

通过POST(ajax)发送JSON数据并从Controller(MVC)接收json响应

我在javascript中创建了一个函数:function addNewManufacturer() {

var name = $("#id-manuf-name").val();

var address = $("#id-manuf-address").val();

var phone = $("#id-manuf-phone").val();

var sendInfo = {

Name: name,

Address: address,

Phone: phone       };

$.ajax({

type: "POST",

url: "/Home/Add",

dataType: "json",

success: function (msg) {

if (msg) {

alert("Somebody" + name + " was added in list !");

location.reload(true);

} else {

alert("Cannot add to list !");

}

},

data: sendInfo       });}

我调用了jquery.json-2.3.min.js脚本文件,并将其用于toJSON(array)方法。

在控制器中,我有这个Add动作[HttpPost]public ActionResult Add(PersonSheets sendInfo) {

bool success = _addSomethingInList.AddNewSomething( sendInfo );

return this.Json( new {

msg = success    });}

但是sendInfo当方法参数变为null时。

该模型:public struct PersonSheets{

public int Id;

public string Name;

public string Address;

public string Phone;}public class PersonModel{

private List _list;

public PersonModel() {

_list= GetFakeData();

}

public bool AddNewSomething(PersonSheets info) {

if ( (info as object) == null ) {

throw new ArgumentException( "Person list cannot be empty", "info" );

}

PersonSheets item= new PersonSheets();

item.Id = GetMaximumIdValueFromList( _list) + 1;

item.Name = info.Name;

item.Address = info.Address;

item.Phone = info.Phone;

_list.Add(item);

return true;

}}

当用POST发送数据时,我怎么能用action方法呢?

我不知道怎么用。此外,可以通过JSON发回响应(到ajax)?

谢谢