有没有办法在ui中将int属性显示为文本?

时间:2011-04-06 18:48:15

标签: c# user-interface asp.net-mvc-3 user-input

我不确定这是否可行,或者它是否是可接受/不可接受的做法,但我的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>

当我拉出我的人物编辑时,有没有办法让按钮保持选中状态?其他所有内容(即记录的当前数据)在“编辑”表单上重新填充。 (这应该是一个单独的问题吗?)

2 个答案:

答案 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#

简而言之

  1. 创建性别枚举
  2. 使用方法读取性别名称 来自enum
  3. 将单选按钮的值设置为 枚举的价值