Мне нужно создать форму с вопросом и текстовое поле, чтобы пользователь мог ввести свой ответ и отправить его для проверки. Кажется @using (Html.BeginForm())
недействителен с @foreach
. Ниже приведен код, но я не уверен, что это правильный путь. Может кто-нибудь указать мне в правильном направлении, пожалуйста? Или как я могу использовать @using (Html.BeginForm())
для сценария.razor MVC foreach with @using (html.beginform())
@model PairingTest.Web.Models.QuestionnaireViewModel
<html>
<head>
<title>@Model.QuestionnaireTitle</title>
</head>
<body>
<form action="~/Questionnaire/ProcessData" method="post">
@foreach (var s in Model.QuestionsText) {
<text> Question :</text>@s <br />
@Html.Label("Ans");<br />
@Html.TextBox("Ans");<br />
}
<button type="submit">Submit</button>
</form>
</body>
Можете ли вы показать код с бритвенной формой, а не формой html – mattfetz
Кстати, моя догадка о вашей проблеме заключается в том, что у вас был символ @ infront как для использования (HTML.beginform()), так и foreach. На самом деле вам не нужен @ infront для каждого, когда он окружен при использовании (HTML.beginform()) из-за его в области бритвы, и это будет бросать и ошибочно. – mattfetz
Что такое подпись метода контроллера, которую вы отправляете обратно и что такое модель? Все, что вы здесь делаете, представляет пакет массивов значений Ans, которые не привязаны ни к чему и будут бессмысленными. –