Ser*_*hos 9 javascript c# asp.net-mvc jquery razor
我有一个强类型视图绑定到一个对象,该对象包含一些对象的Collection(列表).我知道Razor在生成页面时会在服务器端执行,而Javascript变量在页面显示之后才会被实例化...但是它可能以某种方式转换模型(视图绑定到或者它的任何字段到Razor中的JSON而不诉诸AJAX调用来获取该数据?
你知道,像......
var myJavascriptVariable = @Model.MyCollection
Run Code Online (Sandbox Code Playgroud)
哪里@Model.MyCollection
是一些对象的列表.
谢谢
Art*_*kov 31
要获取json数据,您可以使用以下构造:
var jsData = @Html.Raw(Json.Encode(Model.MyCollection));
Run Code Online (Sandbox Code Playgroud)
试试这个,这样你就可以拥有不引人注目的 javascript:
\n\nHTML(剃刀):
\n\n<script id="data" type="text/data-template">\n@Html.Raw(Json.Encode(Model.MyCollection))\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n\nJS(您可以在外部文件中使用它):
\n\nvar\n jsonString = $(\'#data\').html(),\n jsonValue = (new Function( "return( " + jsonString + " );" ))();\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\nHTML:
\n\n<script id="data" type="text/data-template">\n { \'name\': \'Pedro\', \'Age\': 33}\n</script>\n<div id="result"></div>\n
Run Code Online (Sandbox Code Playgroud)\n\nJS\xe2\x80\x8b
\n\nvar\n jsonString = $(\'#data\').html(),\n jsonValue = (new Function( "return( " + jsonString + " );" ))();\n\n$(\'#result\').html(jsonValue.name);\n
Run Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x8b
\n