Javascript中的序列化模型
使用javascript中的Javascript中的序列化模型,javascript,asp.net-mvc,serialization,Javascript,Asp.net Mvc,Serialization,使用javascript中的@Html.Raw序列化模型时遇到问题。我基本上想序列化模型,这样我就可以通过客户端上的回调方法传递它,然后在服务器上反序列化它 [Serializable] public class AdvanceSearch { public string Name{ get; set; } public DateTime? Date { get; set; } } 在javascript中 var now = @Html.Raw(Json.Encod
@Html.Raw
序列化模型时遇到问题。我基本上想序列化模型,这样我就可以通过客户端上的回调方法传递它,然后在服务器上反序列化它
[Serializable]
public class AdvanceSearch
{
public string Name{ get; set; }
public DateTime? Date { get; set; }
}
在javascript中
var now = @Html.Raw(Json.Encode(Model));
alert(now.Name);
但是警报总是以null
的形式返回,这意味着它没有序列化。我遗漏了什么吗
干杯通过使用Newtonsoft json序列化程序/反序列化程序,这可以实现。要序列化模型,请按如下所示使用 名称空间:
Newtonsoft.Json代码>
var now = JsonConvert.SerializeObject( Model );
要反序列化
ViewModel vm = JsonConvert.DeserializeObject<ViewModel>( obj );
ViewModel vm=JsonConvert.DeserializeObject(obj);
这里的视图模型是您的视图模型。希望有帮助 现在是一个字符串(因为您在引号(“”
)中加了引号)。它怎么可能有一个Name
属性呢?好吧,但是如果我删除了引号,javascript就不会使用@HTML.Raw等razor语法了。。。那么,如果你明白我的意思,我该如何转换它呢?在javascript中,你需要JSON.parse
将字符串转换为具有Name
属性的javascript对象<代码>警报(JSON.parse(now.Name)
字符串属性的默认值将为null
。您确定您的模型已正确填充吗?