簡體   English   中英

C# asp.net core 中的表單發送列表

[英]Form in C# asp.net core send a list

我想將一個包含 n 個物質的列表傳遞給我的控制器,但是當我有這個表單時該列表沒有通過

<form asp-controller="AdminAirbus" asp-action="AjoutDeclaration" method="post">
    @for (int i = 0; i < Model.ListSubtances.Count(); i++) { <input asp-for="ListSubtances[i].CasNumber" type="hidden" />
    <input asp-for="ListSubtances[i].Commentaire" type="hidden" />
    <input asp-for="ListSubtances[i].EcNumber" type="hidden" />
    <input asp-for="ListSubtances[i].Quantite" type="hidden" />
    <input asp-for="ListSubtances[i].Reach_DeclarationId" type="hidden" />
    <input asp-for="ListSubtances[i].TypeArticle" type="hidden" />
    }
    <label> Recherche d'une personne </label>
    <input asp-for="ListSubtances" class="form-control" type="hidden" />
    <div class="form-group">
        <label asp-for="reach_Declaration.ArticleId"></label>
        <input asp-for="reach_Declaration.ArticleId" class="form-control" />
        <span asp-validation-for="reach_Declaration.ArticleId" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="reach_Declaration.DateDeclaration"></label>
        <input asp-for="reach_Declaration.DateDeclaration" class="form-control" />
        <span asp-validation-for="reach_Declaration.DateDeclaration" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="reach_Declaration.EntrepriseId"></label>
        <input asp-for="reach_Declaration.EntrepriseId" class="form-control" />
        <span asp-validation-for="reach_Declaration.EntrepriseId" class="text-danger"></span>
    </div>
    <button type="submit">Valider la déclaration</button>
</form>

但是當我以通過的形式只有這個時

<form asp-controller="AdminAirbus" asp-action="AjoutDeclaration" method="post">
    @for (int i = 0; i < Model.ListSubtances.Count(); i++)
    {
    <input asp-for="ListSubtances[i].CasNumber" type="hidden" />
    <input asp-for="ListSubtances[i].Commentaire" type="hidden" />
    <input asp-for="ListSubtances[i].EcNumber" type="hidden" />
    <input asp-for="ListSubtances[i].Quantite" type="hidden" />
    <input asp-for="ListSubtances[i].Reach_DeclarationId" type="hidden" />
    <input asp-for="ListSubtances[i].TypeArticle" type="hidden" /> 
    }
    <button type="submit">Valider la déclaration</button>
</form>

我在控制器中的操作是輸入 AjoutDeclarationViewModel viewModel 並且類是:

public class AjoutDeclarationViewModel
{
  public Substance substance { get; set; }
  public Reach_Declaration reach_Declaration { get; set; }
  public List<Substance> ListSubtances { get; set; }
  public int Nombre_Subtance { get; set; }
}

我怎樣才能解決我的形式發送列表subtancereach_declaration

刪除第一個代碼片段中的以下行

<input asp-for="ListSubtances" class="form-control" type="hidden" />

您可以在 DevTools 中檢查 Form-Data ,上面的代碼通過ListSubtances: System.Collections.Generic.List'1[TestExample.Models.Declarations.Substance]來覆蓋循環中的ListSubtances ,因此您得到 ListSubtances 為 null .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM