我在一个页面上有几个表单,每个表单都在其自己的ViewModel中为该页面的一个MasterModel中定义。问题是,如果我提交任何表单,则会分配相关的ViewModel,我可以处理该表单,但我也丢失了之前提交的表单的信息。
现在我正在做的是从数据库获取数据并手动分配以前的ViewModel(表单)或使用页面中的AJAX调用来填充其他表单的缺失数据..但我的问题是,是否可以存储整个模型例如在一些JSON / XML /?格式化并在以后使用它?
例如
database.saveModel(model.FirstForm.ToJson())
model.FirstForm.FromJson(database.getModel())
答案 0 :(得分:1)
帮助我的解决方案是:
MemoryStream memorystream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(memorystream, model);
byte[] bytes = memorystream.ToArray();
现在我可以将字节保存到VARBINARY(MAX)
sql列。
我还可以将其转换回模型
var result = Database.SqlQuery<byte[]>(...).First();
MemoryStream memorystreamd = new MemoryStream(result);
BinaryFormatter binaryFormatter = new BinaryFormatter();
model = binaryFormatter.Deserialize(memorystreamd) as CustomerVM;
但是对于未来的项目,我将使用带部分视图的AJAX。我在这里找到了很好的文章https://cmatskas.com/update-an-mvc-partial-view-with-ajax/
答案 1 :(得分:0)
BSON文档(对象)由有序的元素列表组成。每个元素由字段名称,类型和值组成。字段名称是字符串。类型包括:
BSON类型名义上是JSON类型的超集(JSON没有日期或字节数组类型,例如[3]),但没有通用&#34;数字&#34;输入JSON的类型。
http://www.asp.net/web-api/overview/formats-and-model-binding/bson-support-in-web-api-21
...
具有序列化基础结构的独立BSON库,可用于构建高性能序列化程序。有关BSON库的文档,请参阅BSON参考。
...