10

可能重复:
在 javascript 中使用 razor

我想将模型中的一个简单值放在剃须刀页面上,并将其用作 javascript 函数中的常量值。IE

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

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

这可能吗?

蒂亚杰

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

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

只需放入额外的括号即可。

4

2 回答 2

16

当然,只要确保正确编码即可。例如,您可以对整个模型本身进行 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);
于 2012-09-10T20:51:43.020 回答
4

确保这是在 Razor 文件中:

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

如果它只是一个 js 文件,那么 Razor 引擎根本不会运行该代码。

于 2012-09-10T20:47:49.477 回答