2013-08-08 3 views
0

Я попытался создать объект в javascript, у меня есть код, который создает мой объект на основе пользовательского интерфейса.javascript malformed objects send to aspmvc app

function skill(name,level){ 
    this.name= name; 
    this.level= level; 
} 

создать новый объект

//in any event 
var newSkill = new skill(nameSk,lvlSk); 

Поместите значение в скрытом ввода

SkillsList.push(newSkill);      
$('#id_ListSkills').val(SkillsList); 

в HTML

<input type="hidden" name="ListSkills" id="id_ListSkills" /> 

И в C# контроллер

public ActionResult Create(FormCollection collection) 
    { 
     try 
     { 
      // TODO: Add insert logic here 

      var skillssss = collection["ListSkills"]; 
      .... 

В вар skillsssss я получаю skillssss = "[object Object],[object Object]"

я пытался отладки Java-кода с предупреждениями

var newSkill = new skill(nameSk,lvlSk); 
    alert(newSkill); raise-> [object, Object] //Error 
    alert(newSkill.name); raise-> correct name value 
    alert(newSkill.level); raise-> correct level value 
    SkillsList.push(newSkill); 
    alert(SkillsList); raise-> [object, Object],* (by the number of objects) //Error 

я использую JQuery.

Как я могу правильно отобразить информацию?

Большое спасибо за ваши ответы

+0

Значение элемента может быть только строкой, вы не можете установить значение в массивы или объекты. – adeneo

ответ

1

Как @adeneo состояний, вы просто толкая массив сложных типов в строку. Вам нужно десериализовать его. Вы можете сделать это довольно легко с помощью Crockford's JSON.js

Тогда это будет просто случай:

$('#id_ListSkills').val(JSON.stringify(SkillsList)); 

http://www.json.org/js.html

Затем можно разобрать на стороне сервера в формате JSON. Я бы не рекомендовал его в качестве лучшей практики, но это способ дефибрилировать то, что у вас уже есть.

+0

отлично, json.js сбой с jquery, но json2.js отлично работает. – user2547522