MVC:我如何使用JavaScriptSerializer将代码解码为使用c#编码的JS

时间:2012-07-12 01:53:38

标签: c# javascript asp.net-mvc

我使用System.Web.Script.Serialization库来编码来自C#的元素。 如何从JS函数解码它。

例如我有:

JavaScriptSerializer js = new JavaScriptSerializer();
string ModelString=  js.Serialize(Model);

并希望JS能够:

var element=decode('@ModelString');

3 个答案:

答案 0 :(得分:2)

你需要使用jQuery。

var _Model=$parseJSON(ModelString);

然后你可以使用:

_Model.Name;
_Model.Address; //etc...

我希望这就是你想要的......

答案 1 :(得分:0)

您可以在视图中执行以下操作:

var element = @Html.Raw(Json.Encode(Model))

其中“模型”是对象。在这种情况下,它不必被序列化,Json.Encode()负责处理。

或者,如果要在控制器中序列化对象,可以在视图中执行以下操作:

var element = @Html.Raw(ModelString)

答案 2 :(得分:0)

您可以创建一个返回序列化模型的方法:

using System.Web.Script.Serialization;
namespace SO11444045.Models
{
    public class HomeIndex
    {
        public HomeIndex()
        {
            this.Name = "Alfred";
            this.Age = 33;
        }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Me()
        {
            var serializer = new JavaScriptSerializer();
            return serializer.Serialize((object)this);
        }
    }
}

并在View中获取Modelo实例:

@model SO11444045.Models.HomeIndex

@{
    ViewBag.Title = "Index";
}

<script type="text/javascript">
    var json = @Html.Raw(Model.Me());
    alert(json.Name);
</script>