Mar*_*arc 3 c# razor asp.net-mvc-3
我有一个简单的ViewModel:
public class IndexViewModel
{
public bool ShowWelcomeMsg { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我需要JS中的这个属性:
<script type="text/javascript">
var ShowWelcomeMsg = @Model.ShowWelcomeMsg;
</script>
Run Code Online (Sandbox Code Playgroud)
但这不正确,因为它输出False而不是false但无论如何,问题更通用,因为我想知道int,string等的解决方案:
编码viewmodel属性以在JavaScript(在Razor中)中使用它的正确方法是什么?
这应该做的工作:
<script type="text/javascript">
var ShowWelcomeMsg = @Html.Raw(Model.ShowWelcomeMsg);
</script>
Run Code Online (Sandbox Code Playgroud)
您应该首先序列化您的数据.您应该使用json表示法传递一个字符串,而不是传递布尔值:
public class IndexViewModel
{
public string ShowWelcomeMsg { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
要序列化为json,您应该:
public ActionResult Index()
{
var serializer = new JavaScriptSerializer();
var vm = new IndexViewModel
{
ShowWelcomeMsg = serializer.Serialize(true)
};
return View(vm);
}
Run Code Online (Sandbox Code Playgroud)
这样,您甚至可以序列化整个C#Object并将其用作JavaScript中的任何其他对象.
| 归档时间: |
|
| 查看次数: |
2178 次 |
| 最近记录: |