如何在javascript函数中使用Razor值?

时间:2012-09-10 20:38:14

标签: javascript asp.net-mvc razor

  

可能重复:
  using razor within javascript

我想在剃刀页面上放置模型中的siimple值,并将其用作javascript函数中的常量值。即。

<script> var myValue = @Model.myRecord.Count();</script>

这样myValue =我模型中的记录数。我使用myRecord.Count作为示例,它可以是我的模型中的任何值。

这可能吗?

TIA Ĵ

好的我偶然发现了以下解决方案:

<script> var myValue = @(Model.myRecord.Count())</script>

只需添加额外的括号。

2 个答案:

答案 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引擎根本不会运行该代码。