我想在剃刀页面上放置模型中的siimple值,并将其用作javascript函数中的常量值。即。
<script> var myValue = @Model.myRecord.Count();</script>
这样myValue =我模型中的记录数。我使用myRecord.Count作为示例,它可以是我的模型中的任何值。
这可能吗?
TIA Ĵ
好的我偶然发现了以下解决方案:
<script> var myValue = @(Model.myRecord.Count())</script>
只需添加额外的括号。
答案 0 :(得分:11)
当然,只需确保正确编码即可。例如,您可以对整个模型本身进行JSON编码:
@model IEnumerable<MyViewModel>
<script type="text/javascript">
var model = @Html.Raw(Json.Encode(Model));
// at this stage the model javascript variable represents the JSON encoded
// value of your server side model so that you can access all it's properties:
alert(model.length);
</script>
或:
alert(model[2].Foo.Bar);
或其他什么。
但是如果你只关心模型中的元素数量(如果这个模型代表一个集合):
var count = @Html.Raw(Json.Encode(Model.Count()));
alert(count);
答案 1 :(得分:2)
确保它位于Razor文件中:
<script> var myValue = @Model.myRecord.Count();</script>
如果它只是一个js文件,那么Razor引擎根本不会运行该代码。