Публикация объектов Javascript с помощью jQuery в MVC ActionResult - PullRequest
0 голосов
/ 14 июля 2010

Я создал клиентский массив объектов javascript, которые я хотел бы отправить обратно на сервер.Но когда я делаю следующее, массив возвращается как «неопределенный» сервер в FormCollection.

Я использую jQuery, и вот мой код JavaScript:

function MyObject(){
    this.Param1;
    this.Param2;
}

var myArray = new Array();

var newObject1 = new MyObject();
newObject1.Param1 = "abc";
newObject1.Param2 = "efg";
myArray.push(newObject1);

var myArray = new Array();
var newObject2 = new MyObject();
newObject2.Param1 = "hij";
newObject2.Param2 = "klm";
myArray.push(newObject2);

$.post("Save", myArray, function (result) { PostDataCallBack(result); });

У кого-нибудь есть пример чего-то подобного или какие-либо идеи о том, как сериализовать объекты JavaScript и публиковать их?1006 *

Спасибо:)

1 Ответ

1 голос
/ 14 июля 2010

Элементы в вашем массиве должны иметь одинаковое имя при публикации в вашем actionMethod.Пока они имеют одинаковое имя, modelBinder, скорее всего, подберет их и вставит в параметр массива actionMethod.Прямо сейчас, похоже, вы не определяете имя для своего массива.Это может означать, что он использует имя по умолчанию, но имя параметра вашего actionMethod должно совпадать.

Попробуйте это:

$.post(
    "Save", 
    { myArray: myArray }, 
    function (result) { PostDataCallBack(result); } 
);

Попробуйте использовать класс ac #, соответствующий вашему объекту javascript, чтобы modelBinder действительносделайте что-нибудь хорошее для вас:

public class MyObject
{
    public string Param1 { get; set; }
    public string Param2 { get; set; }
}

Тогда ваш метод действия должен выглядеть следующим образом:

public ActionResult Save(MyObject[] MyArray) {
    //DO STUFF HERE
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...