Отображение сложного JSON в аргумент Список в действии MVC - PullRequest
0 голосов
/ 14 апреля 2011

У меня есть такие классы

public class someList
{
   public string strOne {get; set;}
   public string strTwo {get; set;}
}
public class Entity
{
    public string EntityMember;
    public List<someList> entityList;
}

Тогда у меня есть контроллер и действие,

public ActionResult MyControllerAction(Entity objEntity)

Как отправить форму из браузера с данными JSON, чтобы она сопоставлялась с моим объектом Entity. Вот моя текущая функция JavaScript для отправки формы,

function submitForm() {
    var Entity = {};
    var eList= new Array();

    eList[0] = { strOne: "91", strTwo: "12" };
    eList[1] = { strOne: "92", strTwo: "12" };

    Entity = { EntityMember: "Member Value", entityList: eList };
    $.post("/MyController/MyControllerAction", Entity);
}

Но это не работает. Я могу получить значение EntityMember, но объект List не приходит.

Есть идеи?

1 Ответ

1 голос
/ 14 апреля 2011

если это для asp.net mvc 3, сущность должна быть строковой

$.ajax({                                                    
        url: "/MyController/MyControllerAction",                                       
        type: "POST",                                           
        data: JSON.stringify(Entity),                          
        dataType: "json",                                       
        contentType: "application/json; charset=utf-8",         
        success: function (data) {                              
            ....                                     
        }                                                       
    });  

если это для asp.net mvc 2, вам также необходимо зарегистрировать провайдера json, пожалуйста, обратитесь к этому ссылка

Причина, по которой вы не работаете, заключается в том, что встроенный формат сериализации в jquery был изменен http://api.jquery.com/jQuery.param/

, вам нужно либо установить его, чтобы использовать традиционныйway:

jQuery.ajaxSettings.traditional = true;

или используйте другой метод сериализации.(Выше я использовал функцию stringify для привязки JSON, часть JSON2.org JSON.org)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...