Код: Выделить всё
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);
// ...
}
Код: Выделить всё
var test = Request.Form["TenantId"];
Единственное, что я могу догадаться, это то, что структура формы каким-то образом портит привязку TenantId. Как видите, модель содержит несколько полей списка, хотя из формы возвращается только одно поле — «Подробности». У меня есть поля редактирования для каждого свойства каждой записи в деталях (т. е. Model.Details.MappingConfigId), и детали и их поля привязываются правильно.
Это использует ASP.NET Core 8 MVC.
EDIT: я попытался удалить все из формы, кроме скрытого поля и правильно привязанного значения, так что это определенно что-то со структурой формы. Опубликовать на 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 ... form-gives
Мобильная версия