首页新闻找找看学习计划

MVC中Action的对象参数接收不到数据的问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2012-12-04 09:52

我在Controller中的Action中放置了一个模型作为参数,如下:

Action ChangeState(ChangeFixState model)

ChangeFixState对象的结构如下

public class ChangeFixState {

  public int Id;

  public FixState State;

  public String Remark;

}

public enum FixState {

  

  未修复 = 0,

  已修复 = 1

}

然后在前台表单中有如下字段:

  Html.TextBoxFor(m => m.Id)

  Html.TextBoxFor(m => m.Remark)

  Html.RadioButtonFor(m => m.State, FixState.未修复)

 

可是我POST提交表单后,后台的model参数却接受不到我提交的值,不知道原因。请教各位,我哪里不对?

  

paseo的主页 paseo | 菜鸟二级 | 园豆:262
提问于:2012-12-03 21:07
< >
分享
所有回答(3)
0

未修复  这些建议楼主还是直接改为英文的

 

你前台的页面上有@model的定义啊,是ChangeFixState类型吗?

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-04 09:17

是的

支持(0) 反对(0) paseo | 园豆:262 (菜鸟二级) | 2012-12-04 09:30
1

因为 你的是字段 而非属性,要提供set,get访问器, 设置成属性,默认的model binder会根据属性名为键在request进行查找。

Qlin | 园豆:2403 (老鸟四级) | 2012-12-04 09:46

对不起,兄弟,没看到你的恢复,匆匆之下就结贴了,不然园豆就给你了

支持(0) 反对(0) paseo | 园豆:262 (菜鸟二级) | 2012-12-04 09:54
0

问题已找到,关键是我定义的对象不正确.开始定义是这样,模型绑定不正常工作:

public class ChangeFixState {

  public int Id; //字段

  public FixState State; //字段

  public String Remark; //字段

}

正确的定义要这样,表现正常:

public class ChangeFixState {

  public int Id {get;set;} //属性

  public FixState State {get;set;} //属性

  public String Remark{get;set;} //属性

}

字段和属性是有区别的.

paseo | 园豆:262 (菜鸟二级) | 2012-12-04 09:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册