Сериализация и десериализация полей ASP .Net MVC

116
10 февраля 2021, 09:30

Никогда не приходилось работать с MVC, а задание горит.

Есть поля для ввода данных, оформленных в представлении по типу:

<label for="empWork">Должность составителя</label>
<div class="input-group">
     <span class="input-group-addon" id="basic-addon1"> От</span>
     <div>
           <input type="text" class="form-control" id="empWork" aria-describedby="basic-addon1">
     </div>
</div>

Есть модель всех имеющихся полей:

public class XmlCreateModel
    {
        public string EmpWork { get; set; }
        public string EmpFIO { get; set; }
        public string RepSubject { get; set; }
        public string RepReason { get; set; }
        public string AnalitData { get; set; }
        public string AnalitResult { get; set; }
    }

Задача- сохранить данные в xml файл с использованием имени шаблона, вводимого пользователем через модальное окно. А также реализовать выбор из имеющихся шаблонов для десериализации в те же поля

В представлении есть Dropdown-menu, через которое вызывается модальное окно для ввода названия шаблона, и в котором должны быть отображены все сохраненные в xml файле шаблоны.

Подскажите, как извлекать данные из полей, как можно реализовать сериализацию, десериализацию по выбору шаблона.

Буду благодарна за любую помощь, а если есть возможность предоставить код, то еще и +1000 к карме))

Answer 1

Объявите ваш класс модели как [Serializable].

    XmlSerializer serializer = new XmlSerializer(typeof(XmlCreateModel));

Так как вам, видимо, нужна сериализация не в файл, а в память, используйте MemoryStream:

    MemoryStream ms = new MemoryStream();

Тогда для сериализации:

    serializer.Serialize(ms, 'ваш_объект');

Соотвественно, для десереализации:

    XmlCreateModel 'имя_вашего_объекта' = ((XmlCreateModel)xmlSerializer.Deserialize(ms));

И на основе вашей логики с шаблонами используйте соответствующие MemoryStream (или перезаписывайте, или все-таки работайте с файлами по именам шаблонов).

READ ALSO
Как загрузить несколько dll на c# .NET Core

Как загрузить несколько dll на c# .NET Core

Занимаюсь разработкой виртуальной машины на C# используяNET Core 1

97
IEnumerable, IEnumerator, yield

IEnumerable, IEnumerator, yield

Форумчане, привет !

87