加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 获取控制器mvc 4中的复选框值

发布时间:2020-12-16 03:59:22 所属栏目:asp.Net 来源:网络整理
导读:我试图从复选框列表中检索已选中的复选框值,但没有成功,下面是我尝试过的代码: 模型 [DisplayName("Gender")] public IListSelectListItem Gender { get; set; } 调节器 public ActionResult Index() { AssociateFormViewModel objStudentModel = new Assoc
我试图从复选框列表中检索已选中的复选框值,但没有成功,下面是我尝试过的代码:

模型

[DisplayName("Gender")]
    public IList<SelectListItem> Gender { get; set; }

调节器

public ActionResult Index()
        {
            AssociateFormViewModel objStudentModel = new AssociateFormViewModel();

            List<SelectListItem> genderNames = new List<SelectListItem>();
            genderNames.Add(new SelectListItem { Text = "Male",Value = "1" });
            genderNames.Add(new SelectListItem { Text = "Female",Value = "2" });
            genderNames.Add(new SelectListItem { Text = "Prefer not to say",Value = "3" });

            objStudentModel.Gender = genderNames;
            return PartialView("AssociateApplicationForm",objStudentModel);

        }

[HttpPost]
        public ActionResult HandleFormSubmit(MembershipFormViewModel model)
        {
            //model not valid,do not save,but return current umbraco page
            if (ModelState.IsValid == false)
            {
                return CurrentUmbracoPage();
            }
 string test = "Gender: " + model.Gender + Environment.NewLine; //getting null here
 return RedirectToCurrentUmbracoPage();
}

视图

@foreach (var names in @Model.Gender)
                {
                var checkBoxId = "chk" + names.Value;
                var tdId = "td" + names.Value;
                    <table width="100%">
                        <tr >
                            <td width="20px">
                                <input type="checkbox" id="@checkBoxId" class="chkclass" value="@names.Value" />
                            </td>
                            <td id="@tdId"  width="100px">
                                @names.Text
                            </td>
                        </tr>
                    </table>

}

任何想法,我错了所选的复选框值在post动作中变为null,另外我如何限制用户只选择一个复选框,

任何帮助或建议将不胜感激.
谢谢

解决方法

为您的复选框指定一个名称:

<input name="gender" type="checkbox" id="@checkBoxId" class="chkclass" value="@names.Value" />

然后接受参数名称为gender的字符串数组

[HttpPost]
        public ActionResult HandleFormSubmit(string[] gender,MembershipFormViewModel model)
        {
            //model not valid,but return current umbraco page
            if (ModelState.IsValid == false)
            {
                return CurrentUmbracoPage();
            }
            string test = "Gender: " + model.Gender + Environment.NewLine; //getting null here
            return RedirectToCurrentUmbracoPage();
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读