Передать модель из представления в контроллер, которая была уже получена из контроллера
Появилась проблема с получением модели из представления в контроллер, которая была уже получена из того же контроллера. При передаче посредством
@using (Html.BeginForm(Model))
{
<input type="submit" value="Заполнить анкету" />
}
передаются свойства модели с типом данным string, enum и т.д., но не экземпляры других классов:
класс модели:
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 форму со сложной моделью нельзя просто отправить в контроллер, это же казалось бы так просто
