【问题标题】:Am i implementing a radio button list in MVC correctly?我是否在 MVC 中正确实现了单选按钮列表?
【发布时间】:2011-12-21 17:06:27
【问题描述】:

我的模型中有一个 IList。我显示为单选按钮。 但是当我提交表单时,值不正确并且模型状态无效,并且所选单选按钮的值应该在哪里是'Count = 0'

这是模型中的选项:

 [Display(Name = "My enquiry is regarding: *")]
 public IList<Industry> A1_EnquiryRegarding { get; set; }

控制器: 填充列表:

 Industry blank = new Industry();
 blank.Id = 0;
 blank.Name = "Other";
 IList<Industry> industryList = manager.GetIndustries();
 industryList.Insert(industryList.Count, blank);
 EnquiryModel.A1_EnquiryRegarding = industryList;

html:

  <td>
     <div class="editor-label">
          <b> @Html.LabelFor(m => m.A1_EnquiryRegarding)</b>
      </div>
      <div class="editor-field">
          @foreach (var radiobutton in Model.A1_EnquiryRegarding) {
             @Html.RadioButtonFor(m => m.A1_EnquiryRegarding, radiobutton.Name)
             <label>@radiobutton.Name</label>
             <br></br>
          }
          @Html.ValidationMessageFor(m => m.A1_EnquiryRegarding)
      </div> 
  </td>

我哪里错了?为什么我没有得到正确的选择值?

编辑:

 [HttpPost]
        public ActionResult EnquiryForm(Enquiry Enquiry)
        {

【问题讨论】:

  • 您可以为您的 get 和 post 方法发布操作签名吗?

标签: asp.net-mvc-3 razor radio-button


【解决方案1】:

当您回发时,您的复杂对象集合不会重新创建。相反,只有一个字符串值与无线电的选定值一起传递。您的更新操作模型应该只包含一个名称。

按如下方式实现您的radiolist:

@foreach (var radiobutton in Model.A1_EnquiryRegarding) {
    @Html.RadioButton("selectedIndustry", radioButton.Name);
}

所有单选按钮都应具有相同的名称,但值不同。这样,当您调用 Post 操作时,您只需搜索参数“selectedIndustry”。

[HttpPost]
public ActionResult MyPostAction(string selectedIndustry) {
}

【讨论】:

    猜你喜欢
    • 2020-01-11
    • 2016-12-28
    • 1970-01-01
    • 2015-10-31
    • 2010-10-28
    • 2016-09-26
    • 2012-02-16
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多