簡體   English   中英

ASPNET Core mvc 3.1 表單在 POST 上始終為空

[英]ASPNET Core mvc 3.1 form always null on POST

我在剃刀視圖中有多種形式。 表單是根據數據庫值動態創建的。 現在,當我將表單發布到服務器時,我總是得到空列表,但驗證正在工作。 這是我的代碼

看法

<form id="@distinc[i].CategoryName.Replace(" ", string.Empty)" asp-action="Report" asp-controller="Laboratory">

@{
var obj = (List<ReportModel>)ViewBag.ReportModel;
var distinct = obj.DistinctBy(m => m.CategoryName).ToList();

@for (int i = 0; i < distinct.Count(); i++)
{
    <form id="@distinc[i].CategoryName.Replace(" ", string.Empty)" asp-action="Report" asp-controller="Laboratory">

        @{
            var items = obj.Where(m => m.CategoryName == distinc[i].CategoryName).ToList();
        }
        <div class="row g-3">
            @for (int k = 0; k < items.Count(); k++)
            {
                <input asp-for="@items[k].RequestId" hidden />
                <input asp-for="@items[k].ServiceName" hidden />
                <div class="col-md-4 pt-0 pb-0 mb-0 mt-0">
                    <label class="form-label">@items[k].ServiceName</label>
                    <input asp-for="@items[k].Result" class="form-control form-control-sm" />
                    <span asp-validation-for="@items[k].Result" class="small text-danger"></span>
                </div>
            }
        </div>
        <div class="d-flex justify-content-between mt-3 border-0">
            <button type="submit" class="btn btn-sm btn-primary">Save</button>
        </div>
    </form>
}

行動

[HttpGet]
public async Task<IActionResult> Report(int id)
{
    var model = await laboratoryRepository.GetRequests(id);
    ViewBag.ReportModel = model;
    return View();
}

[HttpPost]
public async Task<IActionResult> Report(List<ReportModel> model)
{
        
}

模型類

public class ReportModel : PatientInfo
{
    public long RequestId { get; set; }
    public string ServiceName { get; set; }
    public string CategoryName { get; set; }

    [Required]
    public string Result { get; set; }
}

我嘗試使用[FromForm]屬性,但沒有運氣。 我應該怎么辦?

使參數名稱一致。 model更改為items

[HttpPost]
public async Task<IActionResult> Report(List<ReportModel> items)
{
    ...
}

您不能在 mvc list of model

[HttpPost]
public async Task<IActionResult> Report(ReportModel model)
{
        
}

暫無
暫無

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

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