如何从ASP.NET Core中未知字段的表单中获取数据?

问题描述 投票:0回答:1

我想从表单中获取数据,但字段数量未知。 这就像一项调查。从数据库中获取的问题,计数可能会有所不同。

根据我从数据库中获取的数据,我使用

foreach
渲染我的 html,输入为
type='range'

我想知道如何以键值列表的格式获取控制器中的数据。

例如:

public class SurveyAnswer 
{
     public long QuestionId { get; set; }
     public byte Value { get; set; }
}

我希望在我的操作中获得如下数据:

public IActionResult MyAction(List<SurveyAnswer> data) 
{
    // code...
}
c# asp.net-mvc forms asp.net-core data-binding
1个回答
0
投票

根据您的问题,这里是使用 index 的示例。

SurveyAnswer.cs

public class SurveyAnswer
{
    public string Title { get; set; }
    public long QuestionId { get; set; }
    public byte Value { get; set; }
    public int Index { get; set; } // Index property to help with model binding
}

索引.cshtml

@model List<UnknownFields.Models.SurveyAnswer>

<form method="post" action="/SurveyAnswers/SubmitSurvey">
    @for (int i = 0; i < Model.Count; i++)
    {
        <input type="hidden" name="data[@i].Index" value="@i" />
        <input type="hidden" name="data[@i].QuestionId" value="@i" />
        <label>@Model[i].Title</label>
        <input type="range" name="data[@i].Value" value="50" min="0" max="100" />
        <br />
    }
    <button type="submit">Submit</button>
</form>

控制器

[HttpPost]
    public IActionResult SubmitSurvey(List<SurveyAnswer> data)
    {
        foreach (var answer in data)
        {
            // Access answer.QuestionId and answer.Value or other logic
        }
        return RedirectToAction("ThankYou");
    }

如果您的问题有任何误解,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.