У меня есть опрос с 6 вопросами. Каждый вопрос будет оцениваться между (1-5). Я хочу зафиксировать значение, выбранное для каждого вопроса. Только одно значение может быть выбрано по каждому вопросу. . Ниже приведено несколько вариантов для каждого вопроса, поэтому я должен ограничиться выбором только одного для каждого вопроса. Все переключатели должны быть сгруппированы как одна, и можно выбрать только одну кнопку. Я должен уметь отображать выбранное значение для каждого при его представлении.позволяют выбрать только одну радиообъектуру
public class SurveyViewModel
{
public GroupViewModel GroupA { get; set; }
public GroupViewModel GroupB { get; set; }
public GroupViewModel GroupC { get; set; }
public SurveyViewModel()
{
GroupA = new GroupViewModel();
GroupA.GroupName = "A";
GroupB = new GroupViewModel();
GroupB.GroupName = "B";
GroupC = new GroupViewModel();
GroupC.GroupName = "C";
}
}
public class GroupViewModel
{
public string GroupName { get; set; }
public bool radio1 { get; set; }
public bool radio2 { get; set; }
public bool radio3 { get; set; }
public bool radio4 { get; set; }
public bool radio5 { get; set; }
}
Редактор шаблона:
<div>
<h4>GroupViewModel</h4>
<hr />
<dl class="dl-horizontal">
<dt>@Html.RadioButtonFor(model => model.radio1, true, new { id = Model.GroupName + "1" })</dt>
<dd>@Html.DisplayNameFor(model => model.radio1)</dd>
<dt>@Html.RadioButtonFor(model => model.radio2, true, new { id = Model.GroupName + "2" })</dt>
<dd>@Html.DisplayNameFor(model => model.radio2)</dd>
<dt>@Html.RadioButtonFor(model => model.radio3, true, new { id = Model.GroupName + "3" })</dt>
<dd>@Html.DisplayNameFor(model => model.radio3)</dd>
<dt>@Html.RadioButtonFor(model => model.radio4, true, new { id = Model.GroupName + "4" })</dt>
<dd>@Html.DisplayNameFor(model => model.radio4)</dd>
<dt>@Html.RadioButtonFor(model => model.radio5, true, new { id = Model.GroupName + "5" })</dt>
<dd>@Html.DisplayNameFor(model => model.radio5)</dd>
</dl>
</div>
и обзор Вид следующим образом:
@using (Html.BeginForm())
{
@Html.EditorFor(m => m.GroupA)
@Html.EditorFor(m => m.GroupB)
@Html.EditorFor(m => m.GroupC)
<input type="submit" value="Continue" />
}
Я добавил имя группы, как размещены ниже, но я не мог в состоянии захватить выбранный значение в сообщении http
@Html.RadioButtonFor(model => model.radio1, true, new { id = Model.GroupName + "1", @Name = Model.GroupName })
Вы можете разместить сгенерированный HTML для представления обследования? – Kypaz
Благодарим вас за ответ. Он отлично работал. Как проверить, чтобы заставить пользователя выбрать один ответ для каждого вопроса. Значение по умолчанию для рейтинга равно 0, я не могу использовать атрибут Required, так как не будет значений с нулевым значением.Должен ли я изменить значение свойства int как nullable (int?). Если я изменю его на nullable, тогда мне придется внести поправки в много изменений. Есть ли способ, который мы можем проверить с помощью существующего свойства? – Rama