单选按钮列表,复选框,下拉列表和枚举/词典列表

时间:2012-02-09 04:54:53

标签: asp.net-mvc-3 checkbox enums drop-down-menu radio-button

那里的信息量(此处为SO)不是低估它,而是低估它。 。 。压倒性的。

有很多关于如何使用枚举在MVC 3中创建单选按钮列表,复选框和下拉列表的示例。我的问题(也许答案是“你不能这样做”)是我希望在我的代码中保持一致使用扩展(并且大多数示例都有不同类型的扩展)。

这足以让我的头爆炸。

所以,虽然它可能是重复的,虽然帖子可能会关闭,但我会问是否有一个优雅,简单且可能常见的MVC3控件集,用于单选按钮,复选框和下拉?

我正在努力实现的目标:

单选框 我正在使用这些作为“是/否”以及更长的答案(想想:完整句子)a)在DropDownList中不适合或看起来不合适b)只是看起来更好作为用户可以考虑的选择。我已经使用下面的代码得到了很好的结果,但是如果可以的话,我不知道如何将它用于复选框或下拉列表。

的CheckBox “多个”选项的明显选择,但仅限于应显示的内容。

下拉菜单 非常适合0-5个答案,如选择:“0(无),1,2,3,4,5或更多”,或简单的1-3个单词短语(否则,我看起来是无线电按钮)。

我的问题: 我不是程序员。我当然可以消除自己对范式的看法(见下文)我已经盲目地拥抱(因为它一直在为我的无线电频率列表工作),但我想要一些可重复使用的东西。对我来说,有时“可重用”意味着类似。

我的范例(或者我认为类似的东西,希望我可以在复选框或下拉菜单中使用): 我使用enums / dictionarylists为我的radiobuttons如下:

public SomethingList Something{ get; set; }
        public enum SomethingList
        {
            Something_Something1,
            Something_Something2
        }
        public class SomethingDictionary
        {
            public static readonly Dictionary<SomethingList , string> nameDictionary = new Dictionary<SomethingList , string>
            {
            { SomethingList.Something_Something1, "Whatever text I want, whether it's Yes/No for a check box, a simple 1-2 word phrase for dropdowns, or long sentences as I use in my radiobutton lists." },
            { SomethingList.Something_Something2, "Whatever OTHER text I want, whether it's Yes/No for a check box, a simple 1-2 word phrase for dropdowns, or long sentences as I use in my radiobutton lists." },
             };
            static string ConvertSomething(SomethingListnamelist)
            {
                string name;
                return (somethingDictionary.TryGetValue(somethinglist, out name))
                    ? name : somethinglist.ToString();
            }
            static void Main()
            {
                Console.WriteLine(ConvertSomething(SomethingList.Something_Something1));
                Console.WriteLine(ConvertSomething(SomethingList.Something_Something2));
            }
        }

有任何建议/意见吗? (或者,我能用复选框/下拉菜单继续我的范例吗?)

1 个答案:

答案 0 :(得分:0)

尝试使用MVCGrabBag。它具有所有输入的公共代码库。它使用枚举和一些不同的风格使其工作。但是一旦你掌握了基础知识,你就不会失望。你要做的就是做一个@Html.FullFieldEditor,用代码处理剩下的事。基本上有一个Selector.cs和一些其他文件,就像@Html.EditorFor帮助器一样,要创建什么输入。而不是使用一堆/EditorTemplates/它只是有一个照顾一切。

它似乎相当新,所以我相信它会获得动力。我必须想象一下,对于我们这些非超人类编码器来说,这将缓解自从网络诞生以来一直存在的事物没有任何统一结构的问题(我正在谈论输入)。

祝你好运。