FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 6011|回复: 6
打印 上一主题 下一主题

【非BUG】DropDownListFor加了ID后无法加载到Model

[复制链接]
跳转到指定楼层
楼主
发表于 2017-5-25 11:28:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. F.DropDownListFor(k => k.F_ParentID)
  2.                                         .Label("上级部门")
  3.                                         .ShowRedStar(true)
  4.                                         //.ID("ParentDept") //加了ID无法装载到Model
  5.                                         .Required(true)
  6.                                         .DataTextField("Value")
  7.                                         .DataValueField("ID")
  8.                                         .DataSource(ViewBag.ddlDeptDS)
复制代码

这是正常的~
但把ID的注释取消后,F_ParentID却变成null;

本帖子中包含更多资源

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

x
沙发
发表于 2017-5-25 11:52:54 | 只看该作者
ID是控件的ID,F_ParentID是你模型中的值,这两个怎么会影响?

请基于空项目重现问题,并上传可直接运行项目
板凳
发表于 2017-6-9 08:53:47 | 只看该作者
sanshi 发表于 2017-5-25 11:52
ID是控件的ID,F_ParentID是你模型中的值,这两个怎么会影响?

请基于空项目重现问题,并上传可直接运行项 ...

我的也出现这种问题,加上ID无法通过Model获取值,去掉就可以
地板
发表于 2017-6-9 09:12:57 | 只看该作者
SNYG 发表于 2017-6-9 08:53
我的也出现这种问题,加上ID无法通过Model获取值,去掉就可以

请基于空项目重现问题,并发给客服QQ:2877408506@qq.com
5#
发表于 2017-6-9 16:58:57 | 只看该作者
看到你提交的测试项目了。这不是BUG,可以看下你的Model定义:
  1. public class Student
  2.     {
  3.         public int Id { get; set; }

  4.         [Required]
  5.         [StringLength(20)]
  6.         public string Name { get; set; }
  7.         public int EntranceYear { get; set; }
  8.         public bool AtSchool { get; set; }
  9.         public string Major { get; set; }
  10.         public int Group { get; set; }

  11.         
  12.         [Required]
  13.         [StringLength(2)]
  14.         public string Gender { get; set; }
  15.         public DateTime LogTime { get; set; }
  16.         public string Desc { get; set; }
  17.     }
复制代码


前台定义:
  1. F.DropDownListFor(m => m.Gender)
  2.                 .ID("ddlGender").
  3.                 .Label("性别")
  4.                 .Items(
  5.                     F.ListItem()
  6.                         .Text("请选择")
  7.                         .Value(""),
  8.                     F.ListItem()
  9.                         .Text("男")
  10.                         .Value("1"),
  11.                     F.ListItem()
  12.                         .Text("女")
  13.                         .Value("2"),
  14.                     F.ListItem()
  15.                         .Text("对外保密")
  16.                         .Value("3")
  17.                 )
复制代码
提交到后台时,表单数据里面是 ddlGender ,而不是 Gender。


而这个 ddlGender 无法映射到 Student 中的 Gender 属性,因此下面代码:
  1. [HttpPost]
  2.         [ValidateAntiForgeryToken]
  3.         public ActionResult StudentTest_btnSave_Click(Student model)
  4.         {
  5.             if (ModelState.IsValid)
  6.             {

  7.             }

  8.             return UIHelper.Result();
  9.         }
复制代码


就拿不到 model.Gender 的值。





因此遇到这个问题,有两个处理办法:
1. 后台想用自动模型绑定时,前台就不要设置ID的值,会自动用模型的名称作为ID值
2. 前台自定义ID,则后台就不能用自动模型绑定,类似:
  1. [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult StudentTest_btnSave_Click(string ddlGender)
  4. {
  5.         

  6.         return UIHelper.Result();
  7. }
复制代码






本帖子中包含更多资源

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

x
6#
 楼主| 发表于 2017-6-10 08:25:43 | 只看该作者
  1. [HttpPost]
  2.         [ValidateAntiForgeryToken]
  3.         public ActionResult StudentTest_btnSave_Click(Student model,string ddlGender)
  4.         {
  5.             if (ModelState.IsValid)
  6.             {
  7.                         model.Gender = ddlGender;
  8.                         ......
  9.             }

  10.             return UIHelper.Result();
  11.         }
复制代码


如果我想保留ID,改成这样可以吗?
7#
发表于 2017-6-10 11:57:49 | 只看该作者
KK.Leung 发表于 2017-6-10 08:25
如果我想保留ID,改成这样可以吗?

可以
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-23 02:20 , Processed in 0.046146 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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