我使用 System.Web.Script.Serialization 库对来自 C# 的元素进行编码。如何从 JS 函数中解码它。
例如我有:
JavaScriptSerializer js = new JavaScriptSerializer();
string ModelString= js.Serialize(Model);
并希望在 JS 中做:
var element=decode('@ModelString');
我使用 System.Web.Script.Serialization 库对来自 C# 的元素进行编码。如何从 JS 函数中解码它。
例如我有:
JavaScriptSerializer js = new JavaScriptSerializer();
string ModelString= js.Serialize(Model);
并希望在 JS 中做:
var element=decode('@ModelString');
您需要使用 jQuery。
var _Model=$parseJSON(ModelString);
那么你可以使用:
_Model.Name;
_Model.Address; //etc...
我希望这是你想要的...
您可以在视图中执行以下操作:
var element = @Html.Raw(Json.Encode(Model))
其中“模型”是一个对象。在这种情况下,它不必被序列化,Json.Encode() 会处理这个问题。
或者,如果您想在控制器中序列化您的对象,您可以在视图中执行以下操作:
var element = @Html.Raw(ModelString)
您可以创建一个返回序列化模型的方法:
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>