2016-03-10 4 views
1

Я просто изучаю MVC и хотел создать пару радиокнопок, чтобы я мог указать, какой пользователь кнопки переключателя выбрал и что он набрал в текстовом поле для него. Так что я сделал это в Razor:Добавление текста в радиокнопки

@using (Html.BeginForm()) 
    { 
     @Html.RadioButton("rb_settingsupdate", "UpdateEmail"); 
     @Html.RadioButton("rb_settingsupdate", "UpdateQuestions"); 
     @Html.TextBox("userpassword") 
     <input type="submit" value="Submit"/> 
    } 

Теперь в стороне контроллера я был в состоянии использовать [HttpPost] на моем Index метода и использовать FormCollection знать, какую кнопку радио они выбрали и то, что они набрали. Моя проблема в том, что я не знаю, где разместить текст для каждого переключателя в Razor? У метода @Html.RadioButton не было параметров для него.

ответ

2

Как насчет использования html, если это статический текст?

@using (Html.BeginForm()) 
    { 
     @Html.RadioButton("rb_settingsupdate", "UpdateEmail"); <label>Update Email</label> 
     @Html.RadioButton("rb_settingsupdate", "UpdateQuestions"); <label>Update Questions</label> 
     @Html.TextBox("userpassword") 
     <input type="submit" value="Submit"/> 
    } 
+1

Внутри

1

Я бы так не сделал, если бы был вами. Вместо этого используйте модель. Но если вы хотите сделать это таким образом, вы можете сделать это следующим образом:

Update Email: @Html.RadioButton("rb_settingsupdate", "UpdateEmail"); 
Update Questions: @Html.RadioButton("rb_settingsupdate", "UpdateQuestions"); 

Если вы хотите использовать модель, которую я ободрить, here пример.

+0

Хорошо спасибо за предложение лучшего решения. Будет читать. – Bohn

+0

@Bohn Это ответ на ваш вопрос? – CodingYoshi

1
@using (Html.BeginForm()) 
{ 
    @Html.RadioButton("rb_settingsupdate", "UpdateEmail"); 
    @Html.RadioButton("rb_settingsupdate", "UpdateQuestions"); 
    @Html.TextBox("userpassword") 
    <input type="submit" value="Submit"/> 
} 

В коде выше, второй параметр в функции RadioButton (например, «UpdateEmail») является значение кнопки радио и что это текст, который будет отображаться.

Если вы хотите отобразить текст, другой, что использовать этикетку.

@Html.Label

С точки зрения наилучшей практики в будущем, как только у вас есть лучшее понимание MVC, вы должны использовать зрения моделей и использования модели связывания для размещения вместо использования коллекции формы. Связывание с моделью является основной силой MVC, вы должны начать использовать это как можно скорее.

1

RadioButtonsCheckbox а) не имеют свойство «Text», так как тип входного radio itselfs не имеют свойства текста, как вы можете видеть here.

Ваш код будет производить что-то вроде этого:

<input type="radio" name="rb_settingsupdate" value="UpdateEmail"> 

Таким образом, вы должны написать простой текст вне элемента, например:

@Html.RadioButton("rb_settingsupdate", "UpdateEmail") <label>Update Email</label> 

И это превратится в это:

<input type="radio" name="rb_settingsupdate" value="UpdateEmail"> <label>Update Email</label> 

Если у вас есть Model с DataAnnotations и Display свойства, вы можете сделать так:

@Html.RadioButtonFor(x=> x.RbSettingsUpdate, "UpdateEmail") @Html.LabelFor(x=> x.RbSettingsUpdate)