Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209

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

05.10.2013, 05:40. Показов 6293. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2013, 05:40
Ответы с готовыми решениями:

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

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

не выводятся абзацы в 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(); при выводе на месте абзаца -...

4
 Аватар для VladA4
50 / 50 / 7
Регистрация: 06.05.2013
Сообщений: 79
Записей в блоге: 1
05.10.2013, 08:57
Чаще всего 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
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
06.10.2013, 03:33  [ТС]
Цитата Сообщение от 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
Сообщений: 434
06.10.2013, 08:57
Цитата Сообщение от Kill100 Посмотреть сообщение
Все разобрался
так напиши... чтобы другим тоже понятно было )
0
 Аватар для VladA4
50 / 50 / 7
Регистрация: 06.05.2013
Сообщений: 79
Записей в блоге: 1
06.10.2013, 09:41
Для 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2013, 09:41
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru