0

我试图在 javascript 中创建一个对象,我的代码可以根据用户界面创建我的对象。

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"];
            ....

在 var Skillssss 我得到skillssss = "[object Object],[object Object]"

我尝试使用警报调试 javascript 代码

  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。

我怎样才能让信息正确显示?

非常感谢您的回答

4

1 回答 1

1

正如@adeneo 所说,您只是将复杂类型的数组推入字符串。你需要反序列化它。您可以使用Crockford 的 JSON.js轻松做到这一点

那么它只是一个例子:

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

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

然后,您可以解析 JSON 服务器端。我不会真的推荐它作为最佳实践,但它是一种对你已经进行的除颤的方法。

于 2013-08-08T23:11:07.850 回答