Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
Kill100
424 / 290 / 81
Регистрация: 11.12.2010
Сообщений: 1,209
Завершенные тесты: 1
1

MVC3 и @Html.RadioButtonFor() как работать?

05.10.2013, 05:40. Просмотров 4826. Ответов 4
Метки нет (Все метки)

Собственно как определить какой из RadioButton выбран.
допустим есть моделька
C#
1
2
3
4
5
    [Serializable]
    public class MethodViewModel
    {
        public bool[] Method {get; set;}
    }
И есть вьюшка с 2 RadioButton (в реале их будет от 2 и больше)
но оно не работает
Или у меня подход неверен?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  @using (Html.BeginForm("Method", "Registration", FormMethod.Post, new { @class = "form-horizontal label-col-3" }))
        {
            <div class="text-danger">@Html.ValidationMessageFor(x => x.Method)</div>
                <div class="btn-group" data-toggle="buttons">
                    <div class="col-sm-6 col-md-5">
                        <label class="btn btn-default">
                            @Html.RadioButtonFor(x => Model.Method, Model.Method[0])
                        </label>
                    </div>
                    <div class="col-sm-6 col-md-5">
                        <label class="btn btn-default">
                            @Html.RadioButtonFor(x => Model.tMethod, Model.Method[1])
                        </label>
                    </div>
                </div>
            <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5 col-lg-offset-4 col-md-offset-4 col-sm-offset-4">
                <input type="button" class="btn btn-default" value="Назад" onclick="history.back()">
                <input type="submit" class="btn btn-primary" value="Далее" />
            </div>
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 05:40
Ответы с готовыми решениями:

Как работает HTML.ActionLink() в mvc3
Добрый день уважаемые форумчане. На днях пытался получить ссылку с помощью метода...

Будет ли работать сайт на MVC3 на Windows Server 2003 R2
Собираюсь выложить сайт на VPS, создал тему что-бы задавать вопросы по мере появления. Первое что...

не выводятся абзацы в Html.DisplayFor() (Razor MVC3, C#)
string text = Model.IAText.Replace(&quot;\n&quot;, &quot;&lt;p&gt;&lt;p/&gt;&quot;); @Html.DisplayFor(i =&gt; text).ToHtmlString(); ...

GroupName для @Html.RadioButtonFor
Здраствуте, как засунуть в одну группу две таких радио кнопки: @Html.RadioButtonFor( m=&gt;...

Сложности с RadioButtonFor
(Предположительно решение тривиальное, но я до него так и не добрался) Суть: Существует некая...

4
VladA4
50 / 50 / 7
Регистрация: 06.05.2013
Сообщений: 79
Записей в блоге: 1
05.10.2013, 08:57 2
Чаще всего RadioButton используется с Enum ( хотя может быть что то другое ) и очень важно, что RadioButton будет отмечен всегда один, ну по крайне мере, так работает по умолчанию.

В Вашем случаи надо Property Method переделать на функцию GetMethods() и на основе этих значение строить RadioButton, а Property Method добавить, но уже как string.
C#
1
2
3
4
5
6
7
    [Serializable]
    public class MethodViewModel
    {
        public string Method {get; set;}
       
        public string[] GetMethods(){return new [] {"Value1","Value2" };)
    }

Asp.net mvc сам сделает Binding на поле Method, только выбранного значения, то есть у каждого radiobutton будет свое значение и Вы уже на сервере определяете, что выбрано
C#
1
2
3
4
if(vm.Method == " Value1") 
{ //something for Value1} 
else if(vm.Method == "Value2") 
{ //something for "Value2" }
примечание:если будет enum, то можно использовать switch, что все таки более читабильно )


Советы
1.Строить RadioButton в цикле, потому что это безопасней ( не будет IndexOfInvalidRangeException ), а так же динамично ( не надо постоянно добавлять новые строки ), что решит проблему с копипастом.
C#
1
2
3
4
5
6
7
8
  @foreach (var value in Model.GetMethods())
    {
                    <div class="col-sm-6 col-md-5">
                        <label class="btn btn-default">
                            @Html.RadioButtonFor(x => Model.Method, value)
                        </label>
                    </div>
}
2.Использовать Enum в качестве значения.
3. Не могу сказать однозначна, но мне кажется Вы не правильно строить форму используя twitter bootstrapp.
1
Kill100
424 / 290 / 81
Регистрация: 11.12.2010
Сообщений: 1,209
Завершенные тесты: 1
06.10.2013, 03:33  [ТС] 3
Цитата Сообщение от VladA4 Посмотреть сообщение
3. Не могу сказать однозначна, но мне кажется Вы не правильно строить форму используя twitter bootstrapp.

Ну там мануал для 2 версии. А у меня 3. Да и не получится все равно на нем сделать то что надо. Я уже собственную таблицу стилей для кнопок написал.

Добавлено через 1 час 18 минут
А если сделать enum то как это тогда реализовывать?
Предположим
C#
1
2
3
4
5
6
 [Serializable]
    public class MethodViewModel
    {
        enum EMethod{M1, M2, M3};
        public EMethod Method {get; set;}
    }
А дальше как что то не понял.

Добавлено через 2 часа 9 минут
Все разобрался
0
lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 432
06.10.2013, 08:57 4
Цитата Сообщение от Kill100 Посмотреть сообщение
Все разобрался
так напиши... чтобы другим тоже понятно было )
0
VladA4
50 / 50 / 7
Регистрация: 06.05.2013
Сообщений: 79
Записей в блоге: 1
06.10.2013, 09:41 5
Для enum можно не делать метод, а прямо на View построить, следующим образом.
C#
1
2
3
4
5
6
7
8
9
10
11
  @foreach (var value in Enum
                    .GetValues(typeof(YourEnum))
                    .Cast<YourEnum>())
    {
                    <div class="col-sm-6 col-md-5">
                        <label class="btn btn-default">
                              @value.ToString()
                            @Html.RadioButtonFor(x => Model.Method, value.ToString("d"))
                        </label>
                    </div>
   }
1
06.10.2013, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2013, 09:41

RadioButtonFor в table
Имеется представление с таблицей. Таблица берёт данные из IEnumerable модели. У любого объекта в...

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

Как создать новую веб-страницу в MVC3
Здравствуйте. Заранее сорри за делетантский вопрос. По умолчанию, когда создается веб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru