asp.net-mvc – 带MVC剃刀的输入类型复选框
发布时间:2020-12-16 07:35:19 所属栏目:asp.Net 来源:网络整理
导读:为什么我的复选框的值没有传递给我的ViewModel? 我的观点(我省略了与此帖子无关的输入标签): @model Pro.WebUI.ViewModels.UserViewModel@using (Html.BeginForm("ManageUsers","Administration",FormMethod.Post,new { id = "request-form",@class = "for
为什么我的复选框的值没有传递给我的ViewModel?
我的观点(我省略了与此帖子无关的输入标签): @model Pro.WebUI.ViewModels.UserViewModel @using (Html.BeginForm("ManageUsers","Administration",FormMethod.Post,new { id = "request-form",@class = "form-horizontal" })) { <div class="form-group"> <label for="inputAuthorize" class="col-lg-2 control-label">Authorize</label> <div class="col-lg-8"> <input type="checkbox" id="Authorized" name="Authorized" value="@Model.Authorized" /> </div> </div> <div class="form-group"> <div class="col-lg-10 col-lg-offset-2"> <br /><br /> <button type="submit" class="btn btn-primary">Submit Request</button> </div> </div> } 我的ViewModel: public class UserViewModel { [Key] public string UserID { get; private set; } public string UserName { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public bool Authorized { get; set; } public string Email { get; set; } public string Phone { get; set; } public string Notes { get; set; } } 我的控制器: [HttpPost] public ActionResult ManageUsers(UserViewModel model) { if (ModelState.IsValid) { ProcurementUser obj = new ProcurementUser(); obj.UserName = model.Email; obj.FirstName = model.FirstName; obj.LastName = model.LastName; obj.Email = model.Email; obj.Phone = model.Phone; obj.Authorized = model.Authorized; UserRepository.SaveUser(obj); //success message } return View(model); } 我没有包含所有输入标记但是当我在没有复选框的情况下单步执行代码时,所有值都会被传递.我查看了SOF上的其他复选框问题,但他们大多使用@ Html.Checkbox或@ Html.CheckboxFor.我想使用input type =“checkbox” 解决方法
正如评论中暗示的那样,您所遇到的问题是您并未真正正确创建复选框:
假设您的模型具有Authorized = true,您的加价将是: <input type="checkbox" id="Authorized" name="Authorized" value="true" /> 同样,错误状态会导致: <input type="checkbox" id="Authorized" name="Authorized" value="false" /> 但这些不是“选中”复选框 – 它们仍然是“未选中”,并且需要选中已检查的属性设置: <input type="checkbox" id="Authorized" name="Authorized" value="true" checked /> 正如斯蒂芬指出的那样 – 未经检查的复选框不会将任何数据发送回服务器,这样您就不会对所选的选项感到困惑. 最后,正如我们已经注意到的那样,你的< label> element用于查找inputAuthorize而不是Authorized的不存在的字段. 如果您要使用@ Html.CheckboxFor和@ Html.LabelFor帮助程序类,那么所有这些问题都会得到解决. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为一个MVC视图使用两个强类型模型
- asp.net-mvc – 如何为MVC4配置Ninject并提供自定义成员资格
- 通过asp.net网页进行Web服务器监控
- 在mvc4 asp.net中的Razor View中的模型声明
- asp.net-mvc – 用相同的动词重载asp.net MVC控制器方法?
- asp.net – 为什么我在StateServer模式下运行时会丢失会话?
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
- asp.net – 浏览器缓存(.js文件)存在多长时间
- asp.net-mvc – 更改数据注释中的验证消息
- Asp.net视图状态MAC的验证失败
推荐文章
站长推荐
- asp.net – 无法加载类型’site._Default'[已
- ASP.NET Core MVC的Razor视图中,使用Html.Raw方
- asp.net – 以编程方式将几个地址添加到谷歌地图
- 发布一个性能测试工具的破解补丁
- asp.net-mvc – 在MVC3中使用EditorFor的输入字段
- asp.net – 使用Google货币转换API时,输入字符串
- 创建ASP.NET移动Web应用程序时要记住的事项
- asp.net – 我想列出我的下拉列表中的所有国家/地
- asp.net-mvc – 如何使用MsBuild MsDeployPublis
- asp.net – 通过GET访问Mvc Web API复杂对象查询
热点阅读