我有一个简单的视图模型:
public class IndexViewModel
{
public bool ShowWelcomeMsg { get; set; }
}
在我看来,我需要 JS 中的这个属性:
<script type="text/javascript">
var ShowWelcomeMsg = @Model.ShowWelcomeMsg;
</script>
但这是不正确的,因为它输出False
代替false
但无论如何,这个问题更通用,因为我也想知道 int、string 等的解决方案:
对 viewmodel 属性进行编码以在 JavaScript(在 Razor 中)中使用它的正确方法是什么?
这应该完成工作:
<script type="text/javascript">
var ShowWelcomeMsg = @Html.Raw(Model.ShowWelcomeMsg);
</script>
您应该首先序列化您的数据。您应该传递带有 json 表示法的字符串,而不是传递布尔值:
public class IndexViewModel
{
public string ShowWelcomeMsg { get; set; }
}
为了序列化为 json 你应该这样做:
public ActionResult Index()
{
var serializer = new JavaScriptSerializer();
var vm = new IndexViewModel
{
ShowWelcomeMsg = serializer.Serialize(true)
};
return View(vm);
}
通过这种方式,您甚至可以序列化整个 C# 对象并将其用作 JavaScript 中的任何其他对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)