Code: Select all
public IActionResult TenantTBMapping(int tenantId)
[HttpPost]
public IActionResult TenantTBMapping(TenantTBMappingViewModel model)
Code: Select all
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; }
}
Code: Select all
@using (Html.BeginForm("TenantTBMapping", "Settings", FormMethod.Post))
{
@Html.HiddenFor(model => model.TenantId);
// ...
}
aus dem Formular ziehe
Code: Select all
var test = Request.Form["TenantId"];
Das Einzige, was ich erraten kann, ist die Struktur des Formulars bringt irgendwie die TenantId-Bindung durcheinander. Wie Sie sehen können, enthält das Modell mehrere Listenfelder, obwohl das einzige vom Formular zurückgegebene Feld „Details“ ist. Ich habe Bearbeitungsfelder für jede Eigenschaft jedes Eintrags in Details (d. h. Model.Details.MappingConfigId), und die Details und ihre Felder sind korrekt bindend.
Dies verwendet ASP.NET Core 8 MVC.
BEARBEITEN: Ich habe versucht, alles aus dem Formular zu löschen, außer dem ausgeblendeten Feld und dem korrekt gebundenen Wert, es liegt also definitiv an der Formularstruktur. Es ist etwas komplex, auf SO zu posten, aber ich werde mein Bestes geben, um ein Beispiel bereitzustellen.
Ich habe eine Komponente, die eine Liste einer Klasse namens EditConfiguration akzeptiert, und Dadurch werden meine bearbeitbaren Felder generiert. Auch hier funktionieren die Felder selbst einwandfrei, sie stören lediglich irgendwie die Bindung von TenantId. Ich kann weitere Details zu dieser Komponente/Klasse posten, wenn das hilft.
Code: Select all
@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]