asp.net mvc 3 Razor: RadioButtonFor enum并在摘要中显示选中的项目



我使用RadioButtonFor来显示可选择项的列表。这是我正在使用的向导的一部分,向导的最后一步是用户确认提交的摘要。除了RadioButtonFor,一切都好了。我的摘要包含一些非常基本的内容,显示用户输入的内容。

的例子:

...
<div>Summary</div>
<div>Please confirm the information you are submitting.</div>
<div>First Name: @Model.FirstName</div>
...

我的模型的相关部分:

public CategoryList Category { get; set; }
public enum CategoryList
{
    Category1
    Category2
    Category3
}

我的页面的相关部分(带RadioButtonFor的向导步骤):

...
@Html.LabelFor(m => m.Category, new { @class = "CLASS" })
@Html.ValidationMessageFor(m => m.Category)
<div>
@Html.RadioButtonFor(m => m.Category, "Category1")
<span>NEW!</span>Category 1. This Category is for BLAH BLAH BLAH ...
@Html.RadioButtonFor(m => m.Category, "Category2")
Category 2. This Category is for BLAH BLAH BLAH ...
@Html.RadioButtonFor(m => m.Category, "Category3")
Category 3. This Category is for BLAH BLAH BLAH ...
</div>
...

页面的相关部分(包含RadiouButtonFor的向导摘要步骤):

<div>@Model.Category</div>

上面的代码只是在Category List中显示实际的名称,如果用户选择Category1,就说"Category1",这样我就知道枚举工作正确了。然而,我希望这个描述更具有描述性。假设我想让类别1说"类别1"。这个类别是"某某某某某某",也许还可以加上"第一类"。这样它就会显示为红色。我在枚举中使用的实际名称是三个单词,并包含两个下划线,因此在那里显示"Word1_Word2_Word3"不是很友好的UI,它是在摘要中显示的。

更准确地说,如果你看看上面包含RadioButtonFor的页面的相关部分,我包括了在UI上显示给用户的单选按钮的文本。这里显示的文本是我想在摘要中显示的内容。

我尝试使用以下命令:

<div>@Model.Category.CategoryList</div>

但是会抛出错误(…)不包含"CategoryList"的定义,也没有扩展方法"CategoryList"接受类型为…的第一个参数。可以找到(您是否缺少using指令或程序集引用")。我在googlenet上花了几个小时,但什么也没找到(很可能是因为我没有制定好的搜索条件)。

任何想法吗?这是可能的吗,或者我可以做一些其他的事情来实现我正在寻找的?

再次感谢您的帮助,如果以不同的方式重新询问违反了政策,我感到抱歉。

您可以将描述存储在某个Dictionary<CategoryList, string>中,并写入@Html.Raw(YourDictionary[Model.Category])

相关内容

  • 没有找到相关文章

最新更新