我有一个强类型视图绑定到一个对象,该对象包含一些对象的Collection(列表)。我知道Razor在生成页面时会在服务器端执行,而Javascript变量在页面显示之后才会被实例化...但是它可能以某种方式转换模型(视图绑定到)或者它的任何字段到Razor中的JSON,而不是通过AJAX调用来获取那些数据?
你知道,比如......
var myJavascriptVariable = @Model.MyCollection
其中@Model.MyCollection
是一些对象的列表。
由于
答案 0 :(得分:31)
要获取json数据,您可以使用以下结构:
var jsData = @Html.Raw(Json.Encode(Model.MyCollection));
答案 1 :(得分:4)
试试这个,你可以使用不引人注目的javascript:
HTML(Razor):
<script id="data" type="text/data-template">
@Html.Raw(Json.Encode(Model.MyCollection))
</script>
JS(你可以在外部文件中使用它):
var
jsonString = $('#data').html(),
jsonValue = (new Function( "return( " + jsonString + " );" ))();
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);