将文本添加到单选按钮

时间:2016-03-10 14:08:02

标签: c# asp.net-mvc razor

我只是在学习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没有参数。

4 个答案:

答案 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具有DataAnnotationsDisplay属性,则可以这样做:

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