2013-06-25 144 views
0

为了简化问题,我发送给视图的模型包含一个ICollection<Person> Persons { get; set; }类型的属性。通过jquery循环收集

在我看来,它是隐藏的,像这样:

@Html.HiddenFor(model => model.Persons) 

一旦ActionLink被按下时,人的姓氏和名字将被添加到一个(剑道)网格。

$('#add').click(function (personObject) 
    { 
     var personId= $("#PersonId").val(); 
     alert(personId); 


     return false; 
    }); 

一些更多信息:人从下拉列表中选择。在这个DDL的后面是ActionLink,它有一个HtmlAttribute指向它需要调用的JQuery函数。

这一切工作正常。

我在这里想要完成的是查找从下拉列表中选择的人的名字和姓氏。

基础上的人,我需要获得第一和最后一个名字隐藏的“人”集合属性的Id:

@Html.HiddenFor(model => model.Persons) 

我怎样才能做到这一点使用JQuery

+0

显示HTML代码将澄清一些事情:

@Html.Hidden("Persons", Json.Encode(Model.Persons)) 

然后你可以使用类似分析这些数据。生成的代码是什么? – Broxzier

+0

如果您的HTML元素为对象保留JSON,那么会更好,那么您可以使用jQuery来遍历该对象。 – abc123

+0

@ abc123,你的意思不是ICollection,而是JSON?我怎样才能做到这一点? – Yustme

回答

2

您需要将您的馆藏序列化为您可以在JavaScript中阅读的格式。

例如:

<script> 
    var persons = JSON.parse($("#Persons").val()); 
</script> 
+0

嗨,这个伎俩,非常感谢你! – Yustme

+0

有JSON,好工作@Martin Ernst – abc123

0

HiddenFor不适用于集合,只有单个值。为什么不从模型中获取名称或者调用服务器。

+0

嗨,我知道,但这是为了简单的问题。太多解释。抱歉。 – Yustme