10

重複の可能性:
javascript内で剃刀を使用

モデルからの単純な値をかみそりページに配置し、それを javascript 関数の定数値として使用したいと考えています。すなわち

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

myValue = モデルのレコード数になります。例として myRecord.Count を使用しています。これは、モデルの任意の値である可能性があります。

これは可能ですか?

ティア・J

OK私は次の解決策を見つけました:

<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 に答える