将一个视图模型对象传递给jQuery变量

3

我需要在Javascript函数中访问viewmodel对象的成员,我试图通过将其分配给一个jscript变量来实现:

var teamEdit = (function() {
                return {
                    communityGroups: '@Model.CommunityGroups'
                }
            });


$(function() {
....
 var groups = teamEdit.communityGroups;

不幸的是,尽管“CommunityGroups”被填充(通过调试控制器进行检查),但“groups”变量仍然未定义。

1
CommunityGroups的类型是什么? - haim770
请尝试访问此链接 https://dotnetfiddle.net/BG6sQl - Kishore Sahasranaman
2个回答

2

@Model.CommunityGroups 只会调用 ToString(),这将生成类似于 "System.Collections.Generic.List`1[CommunityGroup]" 的内容。

你需要将其序列化为 JSON:

communityGroups: @Html.Raw(Json.Encode(Model.CommunityGroups))

谢谢Haim,有你和KishoreSaha的帮忙,现在已经能正常工作了! :) - BMills

2

你的代码问题在于你试图访问函数teamEdit,但没有使用()。请将其更改为teamEdit()

请参见下面的示例。

var teamEdit = (function() {
                return {
                    communityGroups: '@Model.CommunityGroups'
                }
            });


$(function() {
....
 var groups = teamEdit().communityGroups;

2
好发现。没注意到。 - haim770
非常好的发现,谢谢!然而,我仍然有一个问题,就像Haim所示。 - BMills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接