Мне нужно создать несколько групп из RadioButton
s в моем опросе. Для того, чтобы они были в отдельных группах, я создаю имя во время выполнения инструкции foreach. Все имеют одно и то же название. Там мой кодКак принять список аргументов с не статическими именами anp.net.mvc-5 C#
@foreach (var answer in Model.PossibleAnswers)
{
<div class="col-xs-2">
@Html.RadioButtonMatrix(answer.IdAspect.ToString(), answer.IdAspect)
</div>
}
И есть мой метод обычая Html Helper
public static HtmlString RadioButtonMatrix(this HtmlHelper helper,
string target,
int value)
{
StringBuilder sb = new StringBuilder("SelectedValue.");
sb.Append(target);
string radioButton =
String.Format("<input name=\"" + sb + "\" type=\"radio\" value=\"{0}\"/>", value);
return new HtmlString(radioButton);
}
Итак, можно ли создать не статическое имя parametrs в методе контроллера? я нашел такой атрибут, но полагаю, что это не то, что мне нужно
[HttpPost]
public void GetAnswersMatrix([Bind(Prefix="SelectedValue")]List<String> selectedValues)
{
}
Спасибо за вашу помощь!
Ваша общая конечная цель и рассуждения немного неясны, но если бы я был вами, я бы, скорее всего, обернул коллекцию «RadioButton» в новый объект класса, называемый «RadioButtonGroup», после чего вы можете дать ему свойство name, и это сделает ваша структура данных намного проще для менеджера и итерации. Особенно, если 'Group' на самом деле просто обертывает один вопрос и возможные ответы, объект класса сделает этот MUCH чище и проще кодировать. – Wobbles
Я также вижу небольшую точку в '[Bind (Prefix =" SelectedValue ")]' вам нужно только привязать, если у вас есть объект, у которого есть свойства, которые вы хотите, чтобы привязка модели намеренно игнорировала. Поскольку у вас есть только 1 объект, вы всегда будете привязываться к нему. –
@ Wobbles У меня есть такая «группа» - «SomeAnswer». Это модель для первого продемонстрированного представления. У него есть 'IdAspect' и' List '. Но как это помогает мне создавать разные группы «RadioButtons» и отправлять 'selectedValues' в виде коллекции для контроллера? –