【问题标题】:Assigning the Model to a Javascript variable in Razor将模型分配给 Razor 中的 Javascript 变量
【发布时间】:2012-11-16 23:56:25
【问题描述】:

我有一个强类型视图绑定到一个对象,该对象包含一些对象的集合(列表)。我知道 Razor 在生成页面时会在服务器端执行,而 Javascript 变量要等到页面显示后才会被实例化......但是是否有可能转换模型(视图绑定到) 或它的任何字段到 Razor 中的 JSON 而不诉诸 AJAX 调用来获取该数据?

你知道的,比如……

var myJavascriptVariable = @Model.MyCollection

其中@Model.MyCollection 是一些对象的列表。

谢谢

【问题讨论】:

  • 你尝试过类似var modelToJson = @Html.Raw(Json.Encode(Model));的方法吗?

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


【解决方案1】:

要获取 json 数据,您可以使用以下构造:

var jsData = @Html.Raw(Json.Encode(Model.MyCollection));

【讨论】:

    【解决方案2】:

    试试这个,用这个你可以拥有不显眼的javascript:

    HTML(剃刀):

    <script id="data" type="text/data-template">
    @Html.Raw(Json.Encode(Model.MyCollection))
    </script>
    

    JS(你可以在外部文件中使用它):

    var
       jsonString = $('#data').html(),
       jsonValue = (new Function( "return( " + jsonString + " );" ))();
    

    Example

    HTML:

    <script id="data" type="text/data-template">
        { 'name': 'Pedro', 'Age': 33}
    </script>
    <div id="result"></div>
    

    JS​

    var
       jsonString = $('#data').html(),
        jsonValue = (new Function( "return( " + jsonString + " );" ))();
    
    $('#result').html(jsonValue.name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2020-10-11
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多