【问题标题】:Razor: RadioButtonFor enum and displaying selected item in a summaryRazor:RadioButtonFor 枚举并在摘要中显示所选项目
【发布时间】:2011-04-28 17:29:12
【问题描述】:

我正在使用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>

上面只是在类别列表中显示实际名称,如果用户选择类别 1,则说“类别 1”,所以我知道我的枚举工作正常。但是,我希望描述更具描述性。假设我想让 Category1 说“Category 1。这个类别是给 BLAH BLAH BLAH 的”,并且可能会在“Category 1”周围加上一个。使其显示为红色。我在枚举中使用的实际名称是三个单词,并且包含两个下划线,因此在其中包含“Word1_Word2_Word3”不太友好,这是摘要中显示的内容。

更准确地说,如果您查看上面包含RadioButtonFor 的页面的相关部分,我会包含在 UI 上显示给用户的单选按钮的文本。那里出现的文字就是我想在摘要中出现的文字。

我尝试使用以下方法:

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

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

有什么想法吗?这可能吗,或者我可以做些什么来实现我正在寻找的东西?

再次感谢任何帮助,如果以其他方式重新提问违反政策,我们深表歉意。

【问题讨论】:

  • 删除并重新提出一个表述不当的问题并没有错。但是,您的问题仍然不清楚。
  • 不确定你的意思。我基本上是在尝试显示带有用户输入的摘要页面。如果用户选择 RadioButton 1,并且我使用的是 ENUM,它只会在 ENUM 中显示名称。我希望它显示我为选择的任何 RadioButton 描述的文本,而不是 ENUM 中的文本。抱歉,如果不太清楚。

标签: asp.net-mvc-3 enums razor radiobuttonfor


【解决方案1】:

您可以将描述存储在某处的Dictionary&lt;CategoryList, string&gt; 中并写为@Html.Raw(YourDictionary[Model.Category])

【讨论】:

  • 啊!我在 googlenet 上找到了有关 Dictionary 的内容,但无法正确实施。此外,@Html.Raw 部分不是我发现的部分,因此实际上可能会使其正常工作。希望我能创造出来。谢谢!将报告我的结果。
  • 我得到的“YourDictionary”名称在当前上下文中不存在(其中“YourDictionary”)是我的字典的名称。
  • 如果字典是静态属性,需要通过它的包含类来访问。
  • 最后的评论让我朝着正确的方向前进。问题是我忽略了智能,这让我插入了 Namepace.Models.ViewModel.Class.Dictionary 的整个内容。但这一切都成功了,现在我可以看到字典的内容了。谢谢!
  • 你可能想@using命名空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
相关资源
最近更新 更多