我不确定这是否可行,或者它是否是可接受/不可接受的做法,但我的Person对象上有一个int属性(性别),我想知道我是否有办法显示文本(和单选按钮,假设这些是最佳选项)供用户选择(即“男性”和“女性”),而不是将其显示为数字。我认为这是可能的,但我不知道从哪里开始。是否可以直接在属性上进行一些自定义,可能是在服务层?我在其他属性上有一些“格式”和“标题”的自定义。以下是我所有的性别问题:
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>
当我拉出我的人物编辑时,有没有办法让按钮保持选中状态?其他所有内容(即记录的当前数据)在“编辑”表单上重新填充。 (这应该是一个单独的问题吗?)
答案 0 :(得分:1)
在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中实现自己的单选按钮列表的更多信息here。
答案 1 :(得分:1)
看一下这篇文章,看它是否有帮助:How to pass an enum to Html.RadioButtonFor to get a list of radio buttons in MVC 2 RC 2, C#
简而言之