1

コンストラクターを介してデータが取り込まれる C# モデルがあります。このオブジェクトを _Layout.cshtml に配置して、Javascript で設定として使用できるようにします。

私のモデルは次のようになります。

public class SomeConfig
{
    public string PropertyA { get; set; }
    public string PropertyB { get; set; }
    public string PropertyC { get; set; }

    public SomeConfig()
    {
        PropertyA = SystemSettings.getSetting(KEYA);
        PropertyB = SystemSettings.getSetting(KEYB);
        PropertyC = SystemSettings.getSetting(KEYC);
    }
}

これを _Layout.cshtml で初期化して出力したいので、他のすべてのビューで使用できます。これまでのところ、次のように _Layout.cshtml でこれを手動で行う方法しかわかりません。

<script type="text/javascript">
    MyNamespace.someConfig = {
        PropertyA: @SystemSettings.getSetting(KEYA),
        PropertyB: @SystemSettings.getSetting(KEYB),
        PropertyC: @SystemSettings.getSetting(KEYC)
    }
</script>

SomeConfig.cs モデルが拡張されるたびに、クライアント側で手動で拡張することを覚えておく必要があるため、これは恐ろしいことです。_Layout.cshtml で初期化して Javascript オブジェクトを動的に作成する方法はありますか?

4

1 に答える 1

8

代わりにやってみてください

<script type="text/javascript">
    MyNamespace.someConfig =  @Json.Encode(SystemSettings);
</script>
于 2012-05-15T18:14:23.637 に答える