我不确定这是否可能,或者这是一个可接受/不可接受的做法,但我有一个int属性(性别)在我的Person对象上,我想知道是否有一种方法,我可以显示文本(和单选按钮,假设这些是最好的选择),供用户选择(即。"男性"one_answers"女性"),而不是显示为数字。我认为这是可能的,但我不知道从哪里开始。是直接在属性上进行定制,还是在服务层?我对其他属性的"格式"one_answers"标题"进行了一些自定义。这是我所有的性别:
properties.Add(new PropertyData { Property = "Gender", Type = "Int32", Value = data.Gender.ToString() });
还是直接在视图中?这就是我现在看到的——只是一个文本框,你可以在里面输入一个整数。
<p class="span1">
@Html.Label(Model.Person.Properties, "Gender")
@Html.TextBox(Model.Person.Properties, "Gender")
@Html.Tip(Model.Person.Properties, "Gender")
</p>
任何帮助都是感激的。:)如果我需要提供任何额外的信息或代码,请告诉我。
编辑:我使用了以下语句:
<p>
@Html.Label(Model.Person.Properties, "Gender")
<input type="radio" name="Gender" value="1" /><span>Male</span>
<input type="radio" name="Gender" value="2" /><span>Female</span>
</p>
是否有一种方法来保持按钮选中当我拉我的人编辑?其他所有内容(即记录的当前数据)都会在Edit表单上重新填充。
看一下这篇文章,看看它是否有帮助:如何将enum传递给Html。获取MVC 2 RC 2中单选按钮的列表
不足- 创建性别枚举
- 使用方法读取性别名称从enum
- 设置单选按钮的值为枚举 的值。
在MVC中,您可以完全控制所呈现的HTML。所以你有几个选择。你可以手动呈现你想要的HTML:
<input type="radio" name="SomeName" value="1"><span>Male</span>
<!-- Etc for each item !-->
或者,你可以使用其他的htmlhelper来完成:
@Html.RadioButtonFor(x => x.Person.Properties, "Male")
@Html.RadioButtonListFor (Custom)
这里有更多关于如何在MVC3中实现自己的单选按钮列表的信息。