如何将MVC / C#对象输出到Javascript对象?

时间:2012-05-15 18:08:10

标签: c# javascript asp.net asp.net-mvc client-side

我有一个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对象?

1 个答案:

答案 0 :(得分:7)

尝试改为

<script type="text/javascript">
    MyNamespace.someConfig =  @Json.Encode(SystemSettings);
</script>