Передать модель из представления в контроллер, которая была уже получена из контроллера

Появилась проблема с получением модели из представления в контроллер, которая была уже получена из того же контроллера. При передаче посредством

@using (Html.BeginForm(Model))
{
    <input type="submit" value="Заполнить анкету" />
}

передаются свойства модели с типом данным string, enum и т.д., но не экземпляры других классов:

модель из представления в контроллер с null

класс модели:

public class PersonalDataDocResponseViewModel
{
    public Data.Enums.PersonDataType PersonDataType { get; set; }
    public string Oid { get; set; }
    public PersonalDataDoc Inn { get; set; }
    public PersonalDataDoc FullName { get; set; }

    public PersonalDataDocResponseViewModel()
    {

    }

    public PersonalDataDocResponseViewModel(Data.Enums.PersonDataType personDataType, Response response)
    {
        PersonDataType = personDataType;
        PersonalDataDocResponseTypesSet(response.Registry);
    }

    private void PersonalDataDocResponseTypesSet(Collection<RegistryRecord> registryRecords)
    {
        foreach (var record in registryRecords)
        {
            var personalDataDocResponse = record.Record.RecordContent.Any.DeserializeXmlElement<ReceivingPersonalDataDocResponse>();
            var responseDataType = Enum.Parse<DocumentDataType>(personalDataDocResponse.DataType);
            var fileType = personalDataDocResponse.InfoFileList.FirstOrDefault()!;
            var status = personalDataDocResponse.StatusResponse;

            var personalDataDoc = new PersonalDataDoc(status, responseDataType, fileType.FileName, fileType.MimeType);

            switch (responseDataType)
            {
                case DocumentDataType.inn:
                        Inn = personalDataDoc;
                    break;
                case DocumentDataType.fullName:
                        FullName = personalDataDoc;
                    break;
                default: break;
            }

            if (string.IsNullOrEmpty(Oid))
                Oid = personalDataDocResponse.Oid;
        }
    }
}

PersonalDataDoc:

public class PersonalDataDoc
{
    public StatusResponseType StatusResponse { get; set; }
    public DocumentDataType DataType { get; set; }
    public InfoFileType InfoFile { get; set; }

    public PersonalDataDoc()
    {

    }

    public PersonalDataDoc(StatusResponseType statusResponse, DocumentDataType dataType, string fileName, string mimeType)
    {
        StatusResponse = statusResponse;
        DataType = dataType;
        InfoFile = new InfoFileType(fileName, mimeType);
    }
}

Хотелось бы найти лаконичное решение данной проблемы, без TempData, ViewData, ViewBag, БД, JS и т.д.


Ничего кроме как отправка скрытых input не пришло на ум.. Почему post форму со сложной моделью нельзя просто отправить в контроллер, это же казалось бы так просто


Ответы (0 шт):