我在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参数却接受不到我提交的值,不知道原因。请教各位,我哪里不对?
未修复 这些建议楼主还是直接改为英文的
你前台的页面上有@model的定义啊,是ChangeFixState类型吗?
是的
因为 你的是字段 而非属性,要提供set,get访问器, 设置成属性,默认的model binder会根据属性名为键在request进行查找。
对不起,兄弟,没看到你的恢复,匆匆之下就结贴了,不然园豆就给你了
问题已找到,关键是我定义的对象不正确.开始定义是这样,模型绑定不正常工作:
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;} //属性
}
字段和属性是有区别的.