@ Html.CheckBoxFor со строкой в ​​цикле for - PullRequest
1 голос
/ 09 апреля 2019

Я строю динамическую форму в MVC.Все (около 50) вопросов и предоставленные ответы хранятся в базе данных.Я использую цикл for для динамического заполнения представления вопросами, который отлично работает для @HtmlEditorFor, но не там, где мне нужно использовать флажки.Поскольку форма является динамической, свойство answer всегда является строкой.Я хочу сохранить 0 или 1 в качестве ответа в базе данных на флажок-вопросы.Для @HtmlCheckBoxFor я получаю сообщение об ошибке:

«Шаблоны могут использоваться только с доступом к полям, доступом к свойствам, индексом массива с одним параметром> или выражениями пользовательского индексатора с одним параметром.»

Шаблоны могут использоваться только с доступом к полям, доступом к свойствам, индексом одномерного массива или выражениями настраиваемого индексатора с одним параметром.

@for (int i = startValue; i < maxValue; i++) {

<tr>
<td>@Html.DisplayFor(r => r.Questions[i].QuestionText)</td>

<td>@Html.CheckBoxFor(r => r.Questions[i].Answer == "1")</td>

</tr>
startValue++;
}

1 Ответ

0 голосов
/ 10 апреля 2019

для решения этой проблемы попробуйте уменьшить длину QuestionText:

@for (int i = startValue; i < maxValue; i++) {

<tr>
<td>@Html.DisplayFor(r => r.Questions[i].QuestionText.Substring(0,100) )</td>

<td>@Html.CheckBoxFor(r => r.Questions[i].Answer == "1")</td>

</tr>
startValue++;
}

или вы можете решить вашу проблему с помощью этого решения:

   @for (int i = startValue; i < maxValue; i++) {

    <tr>
    <td> @Questions[i].QuestionText </td>

    <td>@Html.CheckBoxFor(r => r.Questions[i].Answer == "1")</td>

    </tr>
    startValue++;
    }

Я надеюсь, что это решение может помочьвы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...