【问题标题】:How to bind selected radio button value using MVC in view如何在视图中使用 MVC 绑定选定的单选按钮值
【发布时间】:2019-11-14 19:04:02
【问题描述】:
                     <div class="row mt-4">
                        <div class="col-md-12 correct_answer">
                            <lable>Correct Answer</lable><br /><br />
                            <label class="radio-label">
                                @Html.RadioButtonFor(x => x.IsCorrectAnswerOption1, new { @class = "form-control", @type = "radio", id = "IsCorrectAnswerOption1", name = "IsCorrectAnswerOption1"})
                                <span>A</span>
                            </label>
                            <label class="radio-label">
                                @Html.RadioButtonFor(x => x.IsCorrectAnswerOption2, new { @class = "form-control", @type = "radio", id = "IsCorrectAnswerOption2", name = "IsCorrectAnswerOption2" })
                                <span>B</span>
                            </label>
                            <label class="radio-label">
                                @Html.RadioButtonFor(x => x.IsCorrectAnswerOption3, new { @class = "form-control", @type = "radio", id = "IsCorrectAnswerOption3", name = "IsCorrectAnswerOption3" })
                                <span>C</span>
                            </label>
                            <label class="radio-label">
                                @Html.RadioButtonFor(x => x.IsCorrectAnswerOption4, new { @class = "form-control", @type = "radio", id = "IsCorrectAnswerOption4", name = "IsCorrectAnswerOption4" })
                                <span>D</span>
                            </label>
                            <br />
                            <span id="CorrectAnswerError" class="error">Correct Answer is required</span>
                        </div>
                    </div>

在这里,我有四个不同的单选按钮,在该模型中具有不同的 ID 和名称,我有一个真值,但在这里我无法绑定选定的单选值,即真。

【问题讨论】:

  • 当您使用助手时,它应该自动在输出中创建适当的 ID、类型和名称字段?我认为您不需要在选项对象中设置它们。
  • 我试过这样 @Html.RadioButtonFor(x => x.IsCorrectAnswerOption1, new { @class= "form-control"}) 但没用
  • 你可以使用javascript来实现它
  • 谁能提供解决方案?

标签: asp.net-mvc


【解决方案1】:

您可以创建一个枚举并将其作为模型中的属性提供,而不是为每个选项使用布尔变量。在 post 方法中,您可以通过以下方式直接映射用户选择的选项 MyOptions 属性本身。

注意:不要更改元素的name属性。


//Your Model
public class Answer
{
   public Options MyOptions { get; set; }
}

public enum Options
{
  None,
  Option1,
  Option2,
  Option3,
  Option4,

}

//Your Controller

public ActionResult SelectOption()
{
    Answer ans = new Answer();

    return View(ans);
}

[HttpPost]
public ActionResult SelectOption(Answer answer)
{
    var selectedOption = answer.MyOptions;

    return View();
}

//Your cshtml page
@model Answer;

@using (Html.BeginForm(FormMethod.Post))
{
    @Html.RadioButtonFor(x => x.MyOptions, Options.Option1) <span>Option 1</span>
    @Html.RadioButtonFor(x => x.MyOptions, Options.Option2)<span>Option 2</span>
    @Html.RadioButtonFor(x => x.MyOptions, Options.Option3)<span>Option 3</span>
    @Html.RadioButtonFor(x => x.MyOptions, Options.Option4)<span>Option 4</span>

    <button type="submit">Submit</button>

}

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2014-12-15
    • 2016-07-17
    • 2010-12-07
    • 1970-01-01
    • 2014-08-24
    相关资源
    最近更新 更多