如何将模型对象转换为Javascript变量

时间:2015-04-18 12:26:11

标签: javascript asp.net-mvc asp.net-mvc-4

我在我的控制器中有一个类似下面的动作,我发送了一个Viewmodel类的对象作为argumnet来查看。问题是我需要获取此对象值 的JavaScript。

public ActionResult FillChecklist()
{
 classOne objVM=new classone();
    objVM.List=//get list 
    objVM.Id=//someid
    objVM.List2=//secondlist
 return View(objVM);
}

我尝试过类似下面的东西,但它不起作用。我知道隐藏变量赋值是一个解决方案,但我不知道模型类是否有很多列表,那我怎样才能在javascript中获取列表。

<script type="text/javascript>
var obj=@Model;

</script>

我也试过了下面的方法。但它显示了当前上下文中不存在名称json

var obj = JSON.parse('@Html.Raw(Json.Encode(Model))');

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我刚刚使用以下代码为您运行了测试:

@model Project.ViewModels.TestViewModel
@using System.Web.Helpers

<script type="text/javascript">
    var obj = JSON.parse('@Html.Raw(Json.Encode(Model))');
</script>

视图模型:

public class TestViewModel
{
    public string Test { get; set; }
}

它产生以下输出:

<script type="text/javascript">
    var obj = JSON.parse('{"Test":"Value123"}');
</script>