如何从单个ASP.NET MVC视图序列化多个类的实例



我的ASP.NET MVC web应用程序中有一个视图,它包含一个表单。该表单有来自多个不同模型的字段,所以我使用的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>

*表示这些元素可能不止一个。

为了简洁起见,我省略了"根"元素中的元素,但这些显然是表单中的字段,也是模型中的属性。

我使用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中执行类似操作。谢谢

如果您试图在服务器端从序列化的表单数据创建一个XML文件,那么以下解决方案可能会起作用。

根据预先确定的XML结构在ViewModel中排列属性。将表单正常张贴到服务器。然后在服务器端将发布的C#对象模型转换为XML。

您可以参考以下链接将C#对象写入XML文件

将对象数据写入XML文件(C#)

最新更新