【问题标题】:Cannot access properties of model in javascript无法在 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) 吗?

标签: javascript c# jquery json asp.net-mvc-5


【解决方案1】:

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

@{ ... }@if(condition){}

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

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

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

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

Mix Razor and Javascript codeUsing Razor within JavaScript

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 2017-05-04
    • 1970-01-01
    • 2020-05-07
    • 2015-10-22
    • 2012-03-10
    • 1970-01-01
    • 2011-11-29
    相关资源
    最近更新 更多