Как задать массив в параметры POST-запроса в RazorPages?
Есть приложение, которое загружает список вопросов, на которые нужно дать ответы. Этот массив ответов мне надо отправить на какой-нибудь контроллер.
Razor Pages:
<div class="list-group">
<form method="post" asp-controller="Home" asp-action="Foo">
@foreach (var question in test.Questions)
{
<div class="list-group-item ">
@question.QuestionValue
</div>
<input type="text" class="input-group-text col-12 justify-content-center mb-2" />
}
</form>
</div>
Допустим у меня есть DTO-класс, экземпляр которого принимается в параметры метода Foo в контроллере Home.
public class InputModel
{
public ICollection<string> Answers { get; set; }
}
Ответы (1 шт):
Автор решения: motpfofs
→ Ссылка
В модели, которую привяжем к страницу объявляем Dictionary<int, string>:
public class ViewModel
{
public Dictionary<int, string> Answers { get; set; }
}
Так как сами вопросы не используются в форме, то передаём их через ViewBag:
public class Question
{
public int Id { get; set; }
public string Body { get; set; }
public string SampleAnswer { get; set; }
}
Вот эту форму добавляем на нашу страницу:
<form asp-action="Edit">
<table>
@foreach (Question question in ViewBag.Questions)
{
<tr>
<th>
@question.Body
</th>
<td>
<fieldset class="form-group">
<input name= "Answers[@question.Id]" value="@question.SampleAnswer" class="form-control" />
</fieldset>
</td>
</tr>
}
</table>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>