无法在 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)
等
并将代码本身置于转义序列中
@:
或<text>
标签。
所以,知道了这一点,你可以做类似的事情
@
<text>
var widgetModel = '@Html.Raw(Json.Encode(Model.widgets))';
</text>
见Mix Razor and Javascript code和Using Razor within JavaScript
【讨论】:
以上是关于无法在 javascript 中访问模型的属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring MVC 访问 Javascript 中的模型属性
如果在 html 中启用了 javascript,则无法获取控制器模型属性