我在这里尝试了一些建议,但似乎不起作用,我似乎无法访问模型的属性。这是我到目前为止所拥有的
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;
}
最佳答案
混合 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 - 无法在 JavaScript 中访问模型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370798/