无法在 javascript 中访问模型的属性

Posted

技术标签:

【中文标题】无法在 javascript 中访问模型的属性【英文标题】:Cannot access properties of model in javascript 【发布时间】:2015-08-02 22:44:38 【问题描述】:

我在这里尝试了一些建议,但似乎没有奏效,我似乎无法访问模型的属性。这就是我目前所拥有的

var widgetModel = '@html.Raw(Json.Encode(Model.widgets))';
                [].forEach.call(widgetModel, function (widget) 
                    var template = document.querySelector('#panel-template');
                    var panelTitle = template.querySelector('.panel-title');
                    panelTitle.textContent = widget.WidgetName;
                );

这是渲染的小部件模型 http://gyazo.com/4a960969d9bedbd71efb1dac9b99c7e6

我也尝试过像这样访问它,但是似乎没有任何属性挂在小部件变量上。

for (var i = 0; i < widgetCount; i++) 
                        var widget = widget[i];
                        var template = document.querySelector('#panel-template');
                        var panelTitle = template.querySelector('.panel-title');
                        panelTitle.textContent = widget.WidgetName;
                    

【问题讨论】:

尝试将“widgetModel”的渲染添加到您的问题中 @Infer-On 我已经添加了小部件模型的渲染 @Johnathon64,也许我误解了,我的回答没有帮助。你是什​​么意思不能访问模型属性?在尝试了我的建议后,您是否尝试过 console.log(widgetModel) 以确保它有数据? 嗨@AmmarCSE 我可以获取数据,我知道有数据分配给widgetModel,但是我不确定如何访问该模型的各个属性,例如WidgetID、WidgetName 等... @Johnathon64,你能给我看一个 console.log(widgetModel) 吗? 【参考方案1】:

混合使用 javascript 和 Razor 要求您使用任何代码块围绕 Razor 调用

@ ... @if(condition)

并将代码本身置于转义序列中

@:&lt;text&gt; 标签。

所以,知道了这一点,你可以做类似的事情

@
        <text>
            var widgetModel = '@Html.Raw(Json.Encode(Model.widgets))';
        </text>
     

见Mix Razor and Javascript code和Using Razor within JavaScript

【讨论】:

以上是关于无法在 javascript 中访问模型的属性的主要内容,如果未能解决你的问题,请参考以下文章

访问 javascript 文件中的模型属性?

使用 Spring MVC 访问 Javascript 中的模型属性

如果在 html 中启用了 javascript,则无法获取控制器模型属性

Django:无法访问模型属性

无法访问 JavaScript 对象数组 (React.js) 中的属性

更新的核心数据模型属性不可访问?