我有一个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对象?
答案 0 :(得分:7)
尝试改为
<script type="text/javascript">
MyNamespace.someConfig = @Json.Encode(SystemSettings);
</script>