Razor视图捕获RadioButtonFor与枚举源
问题描述:
我使用MVC3和Razor视图,我用正确的数据Razor视图捕获RadioButtonFor与枚举源
填充HelperModel
public partial class Visibility
{
public enum VisibilityLevel { ShowThis, HideThis, HideAll }
...
}
public partial class Address
{
public Visibility.VisibilityLevel Visibility{
get {
...
查看
@Html.RadioButtonFor(m => m.HIDE_DATA, Models.Visibility.VisibilityLevel.ShowThis) <span>Show @Model.TYPE_DESC address</span><br />
@Html.RadioButtonFor(m => m.HIDE_DATA, Models.Visibility.VisibilityLevel.HideThis) <span>Don't show @Model.TYPE_DESC address </span><br />
@Html.RadioButtonFor(m => m.HIDE_DATA, Models.Visibility.VisibilityLevel.HideAll) <span>Don't show ANY addresses</span><br />
视图
控制器
//
// POST: /Address/Edit/5
[HttpPost]
public ActionResult Edit(Address addr,string submitButton)
{
...
这会根据数据和模型定义正确填充页面,但回发不会获得新值。当我检查控制器时,在提交时传递的地址模型具有RadioButton的原始值,而不是由用户选择或更改的值。我错过了什么?
答
原来不是枚举的问题,我的自定义属性没有setter。
改变
HelperModel
Visibility.VisibilityLevel _vizibility;
public Visibility.VisibilityLevel Visibility{
get {
if (_vizibility != Models.Visibility.VisibilityLevel.ShowThis) //the default
return _hide_data;
var ans = new MacDirectEntities()
...
return ans.Visibility;
}
set {
_vizibility= value;
}
}
}
除了使用枚举值,只投他们为int? – mattytommo 2013-03-07 14:33:47