0

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

例如我有:

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

并希望在 JS 中做:

var element=decode('@ModelString');
4

3 回答 3

2

您需要使用 jQuery。

var _Model=$parseJSON(ModelString);

那么你可以使用:

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

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

于 2012-07-14T03:33:30.710 回答
0

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

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

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

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

var element = @Html.Raw(ModelString)
于 2012-07-12T01:58:47.417 回答
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);
        }
    }
}

并在视图中获取 Modelo 实例:

@model SO11444045.Models.HomeIndex

@{
    ViewBag.Title = "Index";
}

<script type="text/javascript">
    var json = @Html.Raw(Model.Me());
    alert(json.Name);
</script>
于 2012-07-14T03:00:37.483 回答