我的ASP.NET MVC Web应用程序中有一个包含单个表单的View。表单包含来自几个不同模型的字段,因此我使用的ViewModel(各种类型)包含所有必需的不同模型。我需要能够根据预定的XML结构将输入到表单中的数据序列化为XML。我没有包含我的模型的代码,因为每个模型中只有公共属性,以及模型可能包含的其他模型的“导航”属性(下面还有一个示例)。这是我的模特:
Cargo.cs
CargoDetails.cs
Consignee.cs
Request.cs
Shipper.cs
Transmission.cs
TransmissionHeader.cs
以下是所需的XML结构:
<Transmission>
<TransmissionHeader>
.
.
</TransmissionHeader>
*<Request>
.
.
*<Cargo>
<Shipper>
.
.
</Shipper>
<Consignee>
.
.
</Consignee>
*<CargoDetails>
.
.
</CargoDetails>
</Cargo>
</Request>
</Transmission>
*表示可能存在多个这些元素。
为简洁起见,我省略了“root”元素中的元素,但这些显然是表单中的字段,它们也是模型中的属性。
我使用Transmission.cs
作为我的“ViewModel”,因为正如您在XML结构中所看到的,它包含所有其他元素。以下是Transmission
模型的代码:
[Serializable]
public class Transmission
{
public TransmissionHeader TransmissionHeader { get; set; }
public List<Request> Requests { get; set; }
}
如何基于此XML结构将输入到表单中的数据序列化为XML?我想从序列化表单数据创建一个XML文件。
如果我可以进一步解释,请告诉我。此外,如果任何部分设置不佳,请告诉我。这是我第一次尝试在ASP.NET MVC中做这样的事情。谢谢。
答案 0 :(得分:0)
如果您尝试从服务器端的序列化表单数据创建XML文件,则以下解决方案可能有效。
基于预定的XML结构,在ViewModel中排列属性。将表单正常发布到服务器。然后将发布的C#对象模型转换为服务器端的XML。
您可以参考以下链接将C#Object写入XML文件