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

Tru*_*an1 1 javascript c# 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在_Layout.cshtml中初始化并输出它,以便我所有其他视图都可以使用它.到目前为止,我只能弄清楚如何在_Layout.cshtml中手动执行此操作,如下所示:

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

这很糟糕,因为每次SomeConfig.cs模型扩展时,我都要记得在客户端手动扩展它.有没有办法在_Layout.cshtml中初始化它,以便动态创建一个Javascript对象?

Thi*_*tes 7

尝试改为做

<script type="text/javascript">
    MyNamespace.someConfig =  @Json.Encode(SystemSettings);
</script>
Run Code Online (Sandbox Code Playgroud)