FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3550|回复: 3

【已确认】CheckBoxFor提交获取不到值

[复制链接]
发表于 2019-3-21 16:44:03 | 显示全部楼层 |阅读模式
CheckBoxFor提交数据,5.3版本之前是可以获取值的,现在5.4获取不到值了,如果布尔类型可为空时,传递的FormCollection取到的key为AtSchool.Value,前台指定的ID无效;如果布尔类型为空,传递得到的值始终为False,代码已重现


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2019-3-21 22:34:14 | 显示全部楼层

已收到你基于空项目重现示例,多谢。

前台代码:
  1. F.CheckBoxFor(m => m.AtSchool.Value)
  2.                 .ID("AtSchool")
  3.                 .Label("是否在校")
复制代码
后台代码:
  1. [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult btnSave_Click(MsStudent model, FormCollection fc)
  4. {
  5.         if (ModelState.IsValid)
  6.         {
  7.                 string message = (model.AtSchool == null ? "值为空" : "值为" + model.AtSchool.ToString());
  8.                 Alert.ShowInTop(message);
  9.         }
  10.         return UIHelper.Result();
  11. }
复制代码




这个不能算是BUG,应该是新特性引起的不兼容情况。因为 v5.4.0 中有个新增的改动
+TextBoxFor支持二级属性,生成的ID将点号替换为下划线(KK.Leung-21940)。
        -为表单字段增加Name属性(用于对提交到服务器的表单数据进行标识)。
        -比如:F.NumberBoxFor(m => m.Score.Chinese),自动生成的控件ID为Score_Chinese。
        -比如:自动生成的表单字段名称(input[name])为Score.Chinese(和ASP.NET Core默认行为保持一致)。
        -新增示例:其他杂项->数据模型->表单控件(二级属性)。

也就是说现在ID属性和Name属性是分开设置的。

针对这个示例,默认的Name是从表达式计算的,也就是:AtSchool.Value
1. 在 v5.3.0 中,如果设置 ID("AtSchool"),那么表单字段的ID和Name都是 AtSchool
2. 在 v5.4.0 中,如果设置 ID("AtSchool"),那么表单字段的ID是 AtSchool,而Name会从表达式获取,也就是 AtSchool.Value

从而导致后台参数绑定失败。解决办法是把前台代码改为:
  1. F.CheckBoxFor(m => m.AtSchool.Value)
  2. .ID("AtSchool")
  3. .Name("AtSchool")
  4. .Label("是否在校")
复制代码




=====================
可惜的是,v5.4.0中无法在视图中设置表单字段的Name属性,这个地方程序写漏了,最近我会出小版本更新,支持这个Name属性的设置。

 楼主| 发表于 2019-3-22 08:29:52 | 显示全部楼层
sanshi 发表于 2019-3-21 22:34
已收到你基于空项目重现示例,多谢。

前台代码:

期待尽快实现Name属性,现在程序已经改为5.4版本了,不想再该回去了
 楼主| 发表于 2019-5-6 17:21:20 | 显示全部楼层
sanshi 发表于 2019-3-21 22:34
已收到你基于空项目重现示例,多谢。

前台代码:

啥时候出新版本?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 06:52 , Processed in 0.047614 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表