Код: Выделить всё
public IActionResult TenantTBMapping(int tenantId)
[HttpPost]
public IActionResult TenantTBMapping(TenantTBMappingViewModel model)
Код: Выделить всё
public class TenantTBMappingViewModel
{
public int TenantId { get; set; }
public List Details { get; set; }
public List? ToNames { get; set; }
public List? Inputs { get; set; }
public List? MappingTables { get; set; }
}
Код: Выделить всё
@using (Html.BeginForm("TenantTBMapping", "Settings", FormMethod.Post))
{
@Html.HiddenFor(model => model.TenantId);
Единственное, что я могу предположить, это то, что структура формы каким-то образом портит привязку TenantId. Как видите, модель содержит несколько полей списка, хотя из формы возвращается только одно поле — «Подробности». У меня есть поля редактирования для каждого свойства каждой записи в Details (т. е. Model.Details.MappingConfigId), а Details и их поля привязываются правильно.
Это использует ASP .NET 8.
РЕДАКТИРОВАНИЕ: я попытался удалить все из формы, кроме скрытого поля и правильно привязанного значения, так что это определенно что-то со структурой формы. Публиковать на SO немного сложно, но я постараюсь привести пример.
У меня есть компонент, который принимает список класса под названием EditConfiguration, и именно он генерирует мои редактируемые поля. Опять же, сами поля работают нормально, они просто каким-то образом мешают привязке TenantId. Я могу опубликовать более подробную информацию об этом компоненте/классе, если это поможет.
Код: Выделить всё
@Html.HiddenFor(model => model.TenantId);
@for (int i = 0; i < Model.Details.Count; i++)
{
MappingConfigDetail detail = Model.Details[i];
string prefix = "Model.Details[" + i.ToString() + "].";
@Model.ToNames[i]
@await Component.InvokeAsync("Edit", new { config = new List() {
new EditConfiguration() {/*params for my EditConfiguration class*/ },
[img]https://i.sstatic.net /LRh8cVfd.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/793 ... it-a-value
Мобильная версия