我在这里尝试了一些建议,但似乎没有用,我似乎无法访问模型的属性。这就是我到目前为止所拥有的
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;
});
这是呈现的widgetmodel http://gyazo.com/4a960969d9bedbd71efb1dac9b99c7e6
我也试图像这样访问它,但似乎没有任何属性挂在widget变量上。
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;
}
答案 0 :(得分: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