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 回答