我只是在学习MVC,并且想要创建几个单选按钮,以便我可以告诉用户选择的单选按钮以及他在文本框中输入了什么。所以我在剃刀中做到了这一点:
@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
没有参数。
答案 0 :(得分:2)
如果是静态文本,只使用html怎么样?
getHeroes() {
this.heroes = this._heroService.getHeroes().then(heroes => this.heroes = heroes);
}
答案 1 :(得分:1)
Update Email: @Html.RadioButton("rb_settingsupdate", "UpdateEmail");
Update Questions: @Html.RadioButton("rb_settingsupdate", "UpdateQuestions");
如果您想使用我鼓励的模型,here就是一个例子。
答案 2 :(得分: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的主要优势,您应该尽快开始利用它。
答案 3 :(得分:1)
RadioButtons
(以及Checkbox
)也没有&#34;文字&#34;属性,因为输入类型radio
本身没有文本属性,您可以看到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)